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

2021-04-01 17:47:17 字數 1429 閱讀 4016

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

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

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

取漢字 中文的拼音首字母

最近在專案中遇到個問題,要將人名前加拼音首字母,方便查詢。我在這方法中取得了一級和二級所有字型檔,也對常見的多音字姓氏做了修改。傳入引數是姓名,返回拼音首字母 姓名,例如 傳入 張揚 返回 zy張揚 名稱空間 using system.text.regularexpressions 方法如下 獲得名...

獲取漢字的拼音首字母

利用漢字拼音首字母進行快速檢索,效率比直接檢索漢字高很多。在ascii編碼中,漢字是按拼音首字母的順序進行編碼的,也就是說拼音首字母相同的漢字的編譯是連續的 相對集中的。那麼就可以通過比較漢字ascii碼的大小來確定其拼音首字母了。例如 如果漢字的ascii碼 n 滿足 n 0xb0a1 n 0xb...