mssql 中文轉拼音首字母

2022-07-31 06:39:15 字數 2961 閱讀 6333

在做列車時刻表進行搜尋時用到中文轉拼音首字母時需要以下函式

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) 

endreturn @py

end--測試

select dbo.fun_getpy('t北京大學醫學部')

在做列車時刻表進行搜尋時用到中文轉拼音首字母時需要以下函式

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) 

endreturn @py

end--測試

select dbo.fun_getpy('t北京大學醫學部')

mssql 中文轉拼音首字母

在做列車時刻表進行搜尋時用到中文轉拼音首字母時需要以下函式 create function fun getpy str nvarchar 4000 returns nvarchar 4000 as begin declare word nchar 1 py nvarchar 4000 set py ...

中文轉拼音首字母

使用者商品名稱簡拼搜尋 namespace common business 1.5.66 漢字轉拼音類 class pinyin 中文字串轉拼音首字母 strchangepin 漢字轉拼音的首字母 get first letter 漢字轉拼音 str2py 獲取拼音對應ascll碼 pinyin p...

漢字轉拼音首字母

public string hz2py string hz 獲得漢字的區位碼 else if tmp 45253 tmp 45760 else if tmp 47761 tmp 46317 else if tmp 46318 tmp 46825 else if tmp 46826 tmp 47009...