SQL获取汉字拼音的打头字母

  create   function   f_GetPy(@Str   nvarchar(400))   
  
returns   nvarchar(4000)   
  
as   
  
begin   
  
declare   @strlen   int,@re   nvarchar(4000)   
  
declare   @t   table(chr   nchar(1)   collate   Chinese_PRC_CI_AS,letter   nchar(1))   
  
insert   @t   select   '','A'   union   all   select   '','B'   
  
union   all   select   '','C'   union   all   select   '','D'   
  
union   all   select   '','E'   union   all   select   '','F'   
  
union   all   select   '','G'   union   all   select   '','H'   
  
union   all   select   '','J'   union   all   select   '','K'     
  
union   all   select   '','L'   union   all   select   '','M'   
  
union   all   select   '','N'   union   all   select   '','O'   
  
union   all   select   '','P'   union   all   select   '','Q'   
  
union   all   select   '','R'   union   all   select   '','S'   
  
union   all   select   '','T'   union   all   select   '','W'   
  
union   all   select   '','X'   union   all   select   '','Y'   
  
union   all   select   '','Z'   
    
  
select   @strlen=len(@str),@re=''   
  
while   @strlen>0   
  
begin   
  
select   top   1   @re=letter+@re,@strlen=@strlen-1   
  
from   @t   a   where   chr<=substring(@str,@strlen,1)   
  
order   by   chr   desc   
  
if   @@rowcount=0   
  
select   @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1   
  
end   
  
return(@re)   
  
end 

 

 
调用方法
print dbo.f_GetPy('打算送到根深蒂固')

posted on 2010-01-11 17:17  王培  阅读(322)  评论(0编辑  收藏  举报

导航