获取中文拼音首字母的SQL函数

2014-11-24 16:06:22 · 作者: · 浏览: 0
获取中文拼音首字母的SQL函数
[sql]
create function [dbo].[f_GetPY](@str nvarchar(4000))  
returns nvarchar(4000)  
as  
begin  
declare @word nchar(1),@PY nvarchar(4000)  
set @PY=''  
while len(@str)>0  
begin  
set @word=left(@str,1)  
--如果非汉字字符,返回原字符  
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901  
then (select top 1 PY from (  
select 'A' as PY,N' ' as word  
union all select 'B',N'簿'  
union all select 'C',N' '  
union all select 'D',N' '  
union all select 'E',N' '  
union all select 'F',N' '  
union all select 'G',N' '  
union all select 'H',N' '  
union all select 'J',N' '  
union all select 'K',N' '  
union all select 'L',N' '  
union all select 'M',N' '  
union all select 'N',N' '  
union all select 'O',N' '  
union all select 'P',N'曝'  
union all select 'Q',N' '  
union all select 'R',N' '  
union all select 'S',N' '  
union all select 'T',N' '  
union all select 'W',N' '  
union all select 'X',N' '  
union all select 'Y',N' '  
union all select 'Z',N' '  
) T   
where word>
=@word collate Chinese_PRC_CS_AS_KS_WS order by PY ASC) else @word end) set @str=right(@str,len(@str)-1) end return @PY end