【轉】SQL漢字轉換為拼音的函數


SQL中有多種的函數,下面為您介紹sql中漢字轉換為拼音的函數,供您參考。數據庫中先自定義一個函數,再把下面代碼寫進去,功能是得到漢字拼音首字母:

如下:

SQL中有多種的函數,下面為您介紹sql中漢字轉換為拼音的函數,供您參考。數據庫中先自定義一個函數,再把下面代碼寫進去,功能是得到漢字拼音首字母:

如下:


view source 

print?
01 create function fun_getPY(@str nvarchar(4000))  

02 returns nvarchar(4000)  

03 as 

04 begin 

05 declare @word nchar(1),@PY nvarchar(4000)  

06 set @PY='' 

07 while len(@str)>0  

08 begin 

09 set @word=left(@str,1)  

10 --如果非漢字字符,返回原字符  

11 set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901  

12 then (select top 1 PY from (  

13 select 'A' as PY,N'' as word  

14 union all select 'B',N'簿' 

15 union all select 'C',N'' 

16 union all select 'D',N'' 

17 union all select 'E',N'' 

18 union all select 'F',N'' 

19 union all select 'G',N'' 

20 union all select 'H',N'' 

21 union all select 'J',N'' 

22 union all select 'K',N'' 

23 union all select 'L',N'' 

24 union all select 'M',N'' 

25 union all select 'N',N'' 

26 union all select 'O',N'' 

27 union all select 'P',N'' 

28 union all select 'Q',N'' 

29 union all select 'R',N'' 

30 union all select 'S',N'' 

31 union all select 'T',N'' 

32 union all select 'W',N'' 

33 union all select 'X',N'' 

34 union all select 'Y',N'' 

35 union all select 'Z',N'' 

36 ) T   

37 where word>=@word collate Chinese_PRC_CS_AS_KS_WS   

38 order by PY ASC) else @word end)  

39 set @str=right(@str,len(@str)-1)  

40 end 

41 return @PY  

42 end 


--函數調用實例:
select dbo.fun_getPY('中華人民共和國')
結果都為:ZHRMGHG

 

 

01 create function fun_getPY(@str nvarchar(4000))
02 returns nvarchar(4000)
03 as
04 begin
05 declare @word nchar(1),@PY nvarchar(4000)
06 set @PY=''
07 while len(@str)>0
08 begin
09 set @word=left(@str,1)
10 --如果非漢字字符,返回原字符
11 set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
12 then (select top 1 PY from (
13 select 'A' as PY,N'驁' as word
14 union all select 'B',N'簿'
15 union all select 'C',N'錯'
16 union all select 'D',N'鵽'
17 union all select 'E',N'樲'
18 union all select 'F',N'鰒'
19 union all select 'G',N'腂'
20 union all select 'H',N'夻'
21 union all select 'J',N'攈'
22 union all select 'K',N'穒'
23 union all select 'L',N'鱳'
24 union all select 'M',N'旀'
25 union all select 'N',N'桛'
26 union all select 'O',N'漚'
27 union all select 'P',N'曝'
28 union all select 'Q',N'囕'
29 union all select 'R',N'鶸'
30 union all select 'S',N'蜶'
31 union all select 'T',N'籜'
32 union all select 'W',N'鶩'
33 union all select 'X',N'鑂'
34 union all select 'Y',N'韻'
35 union all select 'Z',N'咗'
36 ) T 
37 where word>=@word collate Chinese_PRC_CS_AS_KS_WS 
38 order by PY ASC) else @word end)
39 set @str=right(@str,len(@str)-1)
40 end
41 return @PY
42 end

 

--函數調用實例: select dbo.fun_getPY('中華人民共和國') 結果都為:ZHRMGHG


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM