千家信息网

sqlserver实现获取汉字助记码功能汉字拼音字母

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,--01--首先创建一个函数,其功能就是功能是得到汉字拼音首字母goif exists (select * from sysobjects where name='fun_getPY' and xty
千家信息网最后更新 2025年01月21日sqlserver实现获取汉字助记码功能汉字拼音字母

--01--首先创建一个函数,其功能就是功能是得到汉字拼音首字母

go

if exists (select * from sysobjects where name='fun_getPY' and xtype='Fn')

begin

drop function fun_getPY

end

go

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

go

--函数调用实例1:生成指定字符的助记码

select dbo.fun_getPY('中国-郑州') FhelperCode

0