SQL語句提取出中文的拼音首字母

2021-06-08 05:33:39 字數 1414 閱讀 7743

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

--函式呼叫例項:

select dbo.fun_getpy('楊淑芳')

獲取中文拼音首字母的SQL函式

create function dbo f getpy str nvarchar 4000 returns nvarchar 4000 asbegin declare word nchar 1 py nvarchar 4000 set py while len str 0 begin set wor...

提取漢字拼音的首字母

這個能取大部分漢字的首字母,但還不全,有些unicode的漢字是取不到的,要想取到所有漢字的首字母,最好是能做乙個unicode漢字和拼音的對照表,通過對照表查.gb2312標準共收錄6763個漢字,其中一級漢字3755個,二級漢字3008個 同時,gb2312收錄了包括拉丁字母 希臘字母 日文平假...

提取漢字拼音的首字母

這個能取大部分漢字的首字母,但還不全,有些unicode的漢字是取不到的,要想取到所有漢字的首字母,最好是能做乙個unicode漢字和拼音的對照表,通過對照表查.gb2312標準共收錄6763個漢字,其中一級漢字3755個,二級漢字3008個 同時,gb2312收錄了包括拉丁字母 希臘字母 日文平假...