sql文字转换全拼_SQL汉字转拼音函数-支持首字母、全拼

这篇博客介绍了如何在SQL Server中实现汉字转拼音的功能,包括首字母和全拼。提供了两个函数,`dbo.procGetPY`用于获取汉字的首字母,`dbo.procGetPinYin`用于获取汉字的全拼。这两个函数通过大量的字符映射表完成转换,适用于SQL Server环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者不详

--方法一sqlserver汉字转拼音首字母

--调用方法 select dbo.procGetPY ('中國')

Create FUNCTION dbo.procGetPY

(

@str NVARCHAR(4000)

)

/*

select dbo. procGetPYFirstLetter ('中國')

*/

RETURNS NVARCHAR(4000)

--WITH ENCRYPTION

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

Go

--方法二sqlserver汉字转全拼

--调用方法 select dbo. procGetPinYin ('中國')

create function [dbo].procGetPinYin(@str varchar(100))

returns varchar(8000)

as

begin

declare @re varchar(8000),@crs varchar(10)

declare @strlen int

select @strlen=len(@str),@re=''

while @strlen>0

begin

set @crs= substring(@str,@strlen,1)

select @re=

case

when @crs

when @crs<='厑' then 'a'

when @crs<='靉' then 'ai'

when @crs<='黯' then 'an'

when @crs<='醠' then 'ang'

when @crs<='驁' then 'ao'

when @crs<='欛' then 'ba'

when @crs<='瓸' then 'bai'

when @crs<='瓣' then 'ban'

when @crs<='鎊' then 'bang'

when @crs<='鑤' then 'bao'

when @crs<='鐾' then 'bei'

when @crs<='輽' then 'ben'

when @crs<='鏰' then 'beng'

when @crs<='鼊' then 'bi'

when @crs<='變' then 'bian'

when @crs<='鰾' then 'biao'

when @crs<='彆' then 'bie'

when @crs<='鬢' then 'bin'

when @crs<='靐' then 'bing'

when @crs<='蔔' then 'bo'

when @crs<='簿' then 'bu'

when @crs<='囃' then 'ca'

when @crs<='乲' then 'cai'

when @crs<='爘' then 'can'

when @crs<='賶' then 'cang'

when @crs<='鼜' then 'cao'

when @crs<='簎' then 'ce'

when @crs<='笒' then 'cen'

when @crs<='乽' then 'ceng'

when @crs<='詫' then 'cha'

when @crs<='囆' then 'chai'

when @crs<='顫' then 'chan'

when @crs<='韔' then 'chang'

when @crs<='觘' then 'chao'

when @crs<='爡' then 'che'

when @crs<='讖' then 'chen'

when @crs<='秤' then 'cheng'

when @crs<='鷘' then 'chi'

when @crs<='銃' then 'chong'

when @crs<='殠' then 'chou'

when @crs<='矗' then 'chu'

when @crs<='踹' then 'chuai'

when @crs<='鶨' then 'chuan'

when @crs<='愴' then 'chuang'

when @crs<='顀' then 'chui'

when @crs<='蠢' then 'chun'

when @crs<='縒' then 'chuo'

when @crs<='嗭' then 'ci'

when @crs<='謥' then 'cong'

when @crs<='輳' then 'cou'

when @crs<='顣' then 'cu'

when @crs<='爨' then 'cuan'

when @crs<='臎' then 'cui'

when @crs<='籿' then 'cun'

when @crs<='錯' then 'cuo'

when @crs<='橽' then 'da'

when @crs<='靆' then 'dai'

when @crs<='饏' then 'dan'

when @crs<='闣' then 'dang'

when @crs<='纛' then 'dao'

when @crs<='的' then 'de'

when @crs<='扽' then 'den'

when @crs<='鐙' then 'deng'

when @crs<='螮' then 'di'

when @crs<='嗲' then 'dia'

when @crs<='驔' then 'dian'

when @crs<='鑃' then 'diao'

when @crs<='嚸' then 'die'

when @crs<='顁' then 'ding'

when @crs<='銩' then 'diu'

when @crs<='霘' then 'dong'

when @crs<='鬭' then 'dou'

when @crs<='蠹' then 'du'

when @crs<='叾' then 'duan'

when @crs<='譵' then 'dui'

when @crs<='踲' then 'dun'

when @crs<='鵽' then 'duo'

when @crs<='鱷' then 'e'

when @crs<='摁' then 'en'

when @crs<='鞥' then 'eng'

when @crs<='樲' then 'er'

when @crs<='髮' then 'fa'

when @crs<='瀪' then 'fan'

when @crs<='放' then 'fang'

when @crs<='靅' then 'fei'

when @crs<='鱝' then 'fen'

when @crs<='覅' then 'feng'

when @crs<='梻' then 'fo'

when @crs<='鴀' then 'fou'

when @crs<='猤' then 'fu'

when @crs<='魀' then 'ga'

when @crs<='瓂' then 'gai'

when @crs<='灨' then 'gan'

when @crs<='戇' then 'gang'

when @crs<='鋯' then 'gao'

when @crs<='獦' then 'ge'

when @crs<='給' then 'gei'

when @crs<='搄' then 'gen'

when @crs<='堩' then 'geng'

when @crs<='兣' then 'gong'

when @crs<='購' then 'gou'

when @crs<='顧' then 'gu'

when @crs<='詿' then 'gua'

when @crs<='恠' then 'guai'

when @crs<='鱹' then 'guan'

when @crs<='撗' then 'guang'

when @crs<='鱥' then 'gui'

when @crs<='謴' then 'gun'

when @crs<='腂' then 'guo'

when @crs<='哈' then 'ha'

when @crs<='饚' then 'hai'

when @crs<='鶾' then 'han'

when @crs<='沆' then 'hang'

when @crs<='兞' then 'hao'

when @crs<='靏' then 'he'

when @crs<='嬒' then 'hei'

when @crs<='恨' then 'hen'

when @crs<='堼' then 'heng'

when @crs<='鬨' then 'hong'

when @crs<='鱟' then 'hou'

when @crs<='鸌' then 'hu'

when @crs<='蘳' then 'hua'

when @crs<='蘾' then 'huai'

when @crs<='鰀' then 'huan'

when @crs<='鎤' then 'huang'

when @crs<='顪' then 'hui'

when @crs<='諢' then 'hun'

when @crs<='夻' then 'huo'

when @crs<='驥' then 'ji'

when @crs<='嗧' then 'jia'

when @crs<='鑳' then 'jian'

when @crs<='謽' then 'jiang'

when @crs<='釂' then 'jiao'

when @crs<='繲' then 'jie'

when @crs<='齽' then 'jin'

when @crs<='竸' then 'jing'

when @crs<='蘔' then 'jiong'

when @crs<='欍' then 'jiu'

when @crs<='爠' then 'ju'

when @crs<='羂' then 'juan'

when @crs<='钁' then 'jue'

when @crs<='攈' then 'jun'

when @crs<='鉲' then 'ka'

when @crs<='乫' then 'kai'

when @crs<='矙' then 'kan'

when @crs<='閌' then 'kang'

when @crs<='鯌' then 'kao'

when @crs<='騍' then 'ke'

when @crs<='褃' then 'ken'

when @crs<='鏗' then 'keng'

when @crs<='廤' then 'kong'

when @crs<='鷇' then 'kou'

when @crs<='嚳' then 'ku'

when @crs<='骻' then 'kua'

when @crs<='鱠' then 'kuai'

when @crs<='窾' then 'kuan'

when @crs<='鑛' then 'kuang'

when @crs<='鑎' then 'kui'

when @crs<='睏' then 'kun'

when @crs<='穒' then 'kuo'

when @crs<='鞡' then 'la'

when @crs<='籟' then 'lai'

when @crs<='糷' then 'lan'

when @crs<='唥' then 'lang'

when @crs<='軂' then 'lao'

when @crs<='餎' then 'le'

when @crs<='脷' then 'lei'

when @crs<='睖' then 'leng'

when @crs<='瓈' then 'li'

when @crs<='倆' then 'lia'

when @crs<='纞' then 'lian'

when @crs<='鍄' then 'liang'

when @crs<='瞭' then 'liao'

when @crs<='鱲' then 'lie'

when @crs<='轥' then 'lin'

when @crs<='炩' then 'ling'

when @crs<='咯' then 'liu'

when @crs<='贚' then 'long'

when @crs<='鏤' then 'lou'

when @crs<='氇' then 'lu'

when @crs<='鑢' then 'lv'

when @crs<='亂' then 'luan'

when @crs<='擽' then 'lue'

when @crs<='論' then 'lun'

when @crs<='鱳' then 'luo'

when @crs<='嘛' then 'ma'

when @crs<='霢' then 'mai'

when @crs<='蘰' then 'man'

when @crs<='蠎' then 'mang'

when @crs<='唜' then 'mao'

when @crs<='癦' then 'me'

when @crs<='嚜' then 'mei'

when @crs<='們' then 'men'

when @crs<='霥' then 'meng'

when @crs<='羃' then 'mi'

when @crs<='麵' then 'mian'

when @crs<='廟' then 'miao'

when @crs<='鱴' then 'mie'

when @crs<='鰵' then 'min'

when @crs<='詺' then 'ming'

when @crs<='謬' then 'miu'

when @crs<='耱' then 'mo'

when @crs<='麰' then 'mou'

when @crs<='旀' then 'mu'

when @crs<='魶' then 'na'

when @crs<='錼' then 'nai'

when @crs<='婻' then 'nan'

when @crs<='齉' then 'nang'

when @crs<='臑' then 'nao'

when @crs<='呢' then 'ne'

when @crs<='焾' then 'nei'

when @crs<='嫩' then 'nen'

when @crs<='能' then 'neng'

when @crs<='嬺' then 'ni'

when @crs<='艌' then 'nian'

when @crs<='釀' then 'niang'

when @crs<='脲' then 'niao'

when @crs<='钀' then 'nie'

when @crs<='拰' then 'nin'

when @crs<='濘' then 'ning'

when @crs<='靵' then 'niu'

when @crs<='齈' then 'nong'

when @crs<='譳' then 'nou'

when @crs<='搙' then 'nu'

when @crs<='衄' then 'nv'

when @crs<='瘧' then 'nue'

when @crs<='燶' then 'nuan'

when @crs<='桛' then 'nuo'

when @crs<='鞰' then 'o'

when @crs<='漚' then 'ou'

when @crs<='袙' then 'pa'

when @crs<='磗' then 'pai'

when @crs<='鑻' then 'pan'

when @crs<='胖' then 'pang'

when @crs<='礮' then 'pao'

when @crs<='轡' then 'pei'

when @crs<='喯' then 'pen'

when @crs<='喸' then 'peng'

when @crs<='鸊' then 'pi'

when @crs<='騙' then 'pian'

when @crs<='慓' then 'piao'

when @crs<='嫳' then 'pie'

when @crs<='聘' then 'pin'

when @crs<='蘋' then 'ping'

when @crs<='魄' then 'po'

when @crs<='哛' then 'pou'

when @crs<='曝' then 'pu'

when @crs<='蟿' then 'qi'

when @crs<='髂' then 'qia'

when @crs<='縴' then 'qian'

when @crs<='瓩' then 'qiang'

when @crs<='躈' then 'qiao'

when @crs<='籡' then 'qie'

when @crs<='藽' then 'qin'

when @crs<='櫦' then 'qing'

when @crs<='瓗' then 'qiong'

when @crs<='糗' then 'qiu'

when @crs<='覻' then 'qu'

when @crs<='勸' then 'quan'

when @crs<='礭' then 'que'

when @crs<='囕' then 'qun'

when @crs<='橪' then 'ran'

when @crs<='讓' then 'rang'

when @crs<='繞' then 'rao'

when @crs<='熱' then 're'

when @crs<='餁' then 'ren'

when @crs<='陾' then 'reng'

when @crs<='馹' then 'ri'

when @crs<='穃' then 'rong'

when @crs<='嶿' then 'rou'

when @crs<='擩' then 'ru'

when @crs<='礝' then 'ruan'

when @crs<='壡' then 'rui'

when @crs<='橍' then 'run'

when @crs<='鶸' then 'ruo'

when @crs<='栍' then 'sa'

when @crs<='虄' then 'sai'

when @crs<='閐' then 'san'

when @crs<='喪' then 'sang'

when @crs<='髞' then 'sao'

when @crs<='飋' then 'se'

when @crs<='篸' then 'sen'

when @crs<='縇' then 'seng'

when @crs<='霎' then 'sha'

when @crs<='曬' then 'shai'

when @crs<='鱔' then 'shan'

when @crs<='緔' then 'shang'

when @crs<='潲' then 'shao'

when @crs<='欇' then 'she'

when @crs<='瘮' then 'shen'

when @crs<='賸' then 'sheng'

when @crs<='瓧' then 'shi'

when @crs<='鏉' then 'shou'

when @crs<='虪' then 'shu'

when @crs<='誜' then 'shua'

when @crs<='卛' then 'shuai'

when @crs<='腨' then 'shuan'

when @crs<='灀' then 'shuang'

when @crs<='睡' then 'shui'

when @crs<='鬊' then 'shun'

when @crs<='鑠' then 'shuo'

when @crs<='乺' then 'si'

when @crs<='鎹' then 'song'

when @crs<='瘶' then 'sou'

when @crs<='鷫' then 'su'

when @crs<='算' then 'suan'

when @crs<='鐩' then 'sui'

when @crs<='潠' then 'sun'

when @crs<='蜶' then 'suo'

when @crs<='襨' then 'ta'

when @crs<='燤' then 'tai'

when @crs<='賧' then 'tan'

when @crs<='燙' then 'tang'

when @crs<='畓' then 'tao'

when @crs<='蟘' then 'te'

when @crs<='朰' then 'teng'

when @crs<='趯' then 'ti'

when @crs<='舚' then 'tian'

when @crs<='糶' then 'tiao'

when @crs<='餮' then 'tie'

when @crs<='乭' then 'ting'

when @crs<='憅' then 'tong'

when @crs<='透' then 'tou'

when @crs<='鵵' then 'tu'

when @crs<='褖' then 'tuan'

when @crs<='駾' then 'tui'

when @crs<='坉' then 'tun'

when @crs<='籜' then 'tuo'

when @crs<='韤' then 'wa'

when @crs<='顡' then 'wai'

when @crs<='贎' then 'wan'

when @crs<='朢' then 'wang'

when @crs<='躛' then 'wei'

when @crs<='璺' then 'wen'

when @crs<='齆' then 'weng'

when @crs<='齷' then 'wo'

when @crs<='鶩' then 'wu'

when @crs<='衋' then 'xi'

when @crs<='鏬' then 'xia'

when @crs<='鼸' then 'xian'

when @crs<='鱌' then 'xiang'

when @crs<='斆' then 'xiao'

when @crs<='躞' then 'xie'

when @crs<='釁' then 'xin'

when @crs<='臖' then 'xing'

when @crs<='敻' then 'xiong'

when @crs<='齅' then 'xiu'

when @crs<='蓿' then 'xu'

when @crs<='贙' then 'xuan'

when @crs<='瀥' then 'xue'

when @crs<='鑂' then 'xun'

when @crs<='齾' then 'ya'

when @crs<='灩' then 'yan'

when @crs<='樣' then 'yang'

when @crs<='鑰' then 'yao'

when @crs<='岃' then 'ye'

when @crs<='齸' then 'yi'

when @crs<='檼' then 'yin'

when @crs<='譍' then 'ying'

when @crs<='喲' then 'yo'

when @crs<='醟' then 'yong'

when @crs<='鼬' then 'you'

when @crs<='爩' then 'yu'

when @crs<='願' then 'yuan'

when @crs<='鸙' then 'yue'

when @crs<='韻' then 'yun'

when @crs<='雥' then 'za'

when @crs<='縡' then 'zai'

when @crs<='饡' then 'zan'

when @crs<='臟' then 'zang'

when @crs<='竈' then 'zao'

when @crs<='稄' then 'ze'

when @crs<='鱡' then 'zei'

when @crs<='囎' then 'zen'

when @crs<='贈' then 'zeng'

when @crs<='醡' then 'zha'

when @crs<='瘵' then 'zhai'

when @crs<='驏' then 'zhan'

when @crs<='瞕' then 'zhang'

when @crs<='羄' then 'zhao'

when @crs<='鷓' then 'zhe'

when @crs<='黮' then 'zhen'

when @crs<='證' then 'zheng'

when @crs<='豒' then 'zhi'

when @crs<='諥' then 'zhong'

when @crs<='驟' then 'zhou'

when @crs<='鑄' then 'zhu'

when @crs<='爪' then 'zhua'

when @crs<='跩' then 'zhuai'

when @crs<='籑' then 'zhuan'

when @crs<='戅' then 'zhuang'

when @crs<='鑆' then 'zhui'

when @crs<='稕' then 'zhun'

when @crs<='籱' then 'zhuo'

when @crs<='漬' then 'zi'

when @crs<='縱' then 'zong'

when @crs<='媰' then 'zou'

when @crs<='謯' then 'zu'

when @crs<='攥' then 'zuan'

when @crs<='欈' then 'zui'

when @crs<='銌' then 'zun'

when @crs<='咗' then 'zuo'

--else @crs end+' '+@re,@strlen=@strlen-1

--去掉拼音之间的间隔

else @crs end+''+@re,@strlen=@strlen-1

end

return(@re)

end

go

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值