ERDS网校 - ERDS企业自主信息化培训,交流

查看: 302|回复: 0

取汉字首字母函数一

[复制链接]

80

主题

87

帖子

315

积分

版主

Rank: 7Rank: 7Rank: 7

积分
315
发表于 2015-10-16 14:52:35 | 显示全部楼层 |阅读模式

create function [dbo].[f_getpy_V1] (@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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ERDS网校   点击这里给我发消息

快速回复 返回顶部 返回列表