取漢字拼音首字母的儲存過程

2021-04-12 21:29:18 字數 1502 閱讀 3340

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

endselect dbo.[fun_getpy] ('你好')

select [ais20070330093948].[dbo].[fun_getpy]('你好的') 

取漢字拼音首字母的儲存過程

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...

取漢字拼音首字母的儲存過程

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...

取漢字拼音首字母的儲存過程

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...