现在的位置: 首页 > 综合 > 正文

取汉字拼音首字母的通用存储过程

2012年08月27日 ⁄ 综合 ⁄ 共 1811字 ⁄ 字号 评论关闭
Create  function fun_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(@wordbetween 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

抱歉!评论已关闭.