生成汉字拼音首字母函数!

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(@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
添加至用户自定义函数
SQL语句中 调用dbo.fun_getPY()

转载于:https://www.cnblogs.com/Magicam/archive/2008/06/09/1216261.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值