SQL汉字转拼音函数-支持首字母、全拼
SQL汉字转拼音函数-支持首字母、全拼
FROM :http://my.oschina.net/ind/blog/191659
作者不详 --方法一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<'吖' then @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