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收錄了包括拉丁字母 希臘字母 日文平假...