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

本文介绍了一个SQL Server中自定义的函数f_GetPy,该函数能够将输入的中文字符串转换为对应的汉语拼音首字母缩写。通过创建临时表并插入汉语拼音对照表的方式,实现了中文到拼音的映射。
ExpandedBlockStart.gif
  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('打算送到根深蒂固')

转载于:https://www.cnblogs.com/wangpei/archive/2010/01/11/1644284.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值