-- =============================================
-- Create scalar function (NWGetPYFirst)
-- =============================================
IF EXISTS (SELECT *
FROM sysobjects
WHERE name = N@#NWGetPYFirst@#)
DROP FUNCTION NWGetPYFirst
GO
CREATE FUNCTION NWGetPYFirst
(@str varchar(500) = @#@#)
RETURNS varchar(500)
AS
BEGIN
Declare @strlen int,
@return varchar(500),
@ii int,
@c char(1),
@chn nchar(1)
--//初始化变量
Declare @pytable table(
chn char(2) COLLATE Chinese_PRC_CS_AS NOT NULL,
py char(1) COLLATE Chinese_PRC_CS_AS NULL,
PRIMARY KEY (chn)
)
insert into @pytable values(@#吖@#, @#A@#)
insert into @pytable values(@#八@#, @#B@#)
insert into @pytable values(@#嚓@#, @#C@#)
insert into @pytable values(@#咑@#, @#D@#)
insert into @pytable values(@#妸@#, @#E@#)
insert into @pytable values(@#发@#, @#F@#)
insert into @pytable values(@#旮@#, @#G@#)
insert into @pytable values(@#铪@#, @#H@#)
insert into @pytable values(@#丌@#, @#I@#)
--insert into @pytable values(@#丌@#, @#J@#)
insert into @pytable values(@#咔@#, @#K@#)
insert into @pytable values(@#垃@#, @#L@#)
insert into @pytable values(@#嘸@#, @#M@#)
insert into @pytable values(@#拏@#, @#N@#)
insert into @pytable values(@#噢@#, @#O@#)
insert into @pytable values(@#妑@#, @#P@#)
insert into @pytable values(@#七@#, @#Q@#)
insert into @pytable values(@#呥@#, @#R@#)
insert into @pytable values(@#仨@#, @#S@#)
insert into @pytable values(@#他@#, @#T@#)
insert into @pytable values(@#屲@#, @#U@#)
--insert into @pytable values(@#屲@#, @#V@#)
--insert into @pytable values(@#屲@#, @#W@#)
insert into @pytable values(@#夕@#, @#X@#)
insert into @pytable values(@#丫@#, @#Y@#)
insert into @pytable values(@#帀@#, @#Z@#)
select @strlen = len(@str), @return = @#@#, @ii = 0
--//循环整个字符串,用拼音的首字母替换汉字
while @ii < @strlen
begin
select @ii = @ii + 1, @chn = substring(@str, @ii, 1)
if @chn > @#z@# --//检索输入的字符串中有中文字符
SELECT @c = max(py)
FROM @pytable
where chn <= @chn
else
set @c=@chn
set @return=@return+@c
end
return @return
END
GO
-- =============================================
-- Example to execute function
-- =============================================
SELECT dbo.NWGetPYFirst(@#梦想国度@#), dbo.NWGetPYFirst(@#noctwolf分享源码@#), dbo.NWGetPYFirst(@#@#)
GO