SQL 获取中文拼音

ALTER function [dbo].[fn_Getpinyin](@words nvarchar(2000)) 
returns varchar(8000) 
as 
begin 
	declare @word nchar(1) 
	declare @pinyin varchar(8000) 
	declare @i int 
	declare @words_len int 
	declare @unicode int 
	set @i = 1 
	set @words = ltrim(rtrim(@words)) 
	set @words_len = len(@words) 
	while (@i <= @words_len) --循环取字符 
	begin 
		set @word = substring(@words, @i, 1) 
		set @unicode = unicode(@word) 
		set @pinyin = ISNULL(@pinyin +SPACE(0),'')+  
			(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 'ai',N'靉' 
			union all select 'an',N'黯' 
			union all select 'ang',N'醠' 
			union all select 'ao',N'驁' 
			union all select 'ba',N'欛' 
			union all select 'bai',N'瓸' 
			union all select 'ban',N'瓣' 
			union all select 'bang',N'鎊' 
			union all select 'bao',N'鑤' 
			union all select 'bei',N'鐾' 
			union all select 'ben',N'輽' 
			union all select 'beng',N'鏰' 
			union all select 'bi',N'鼊' 
			union all select 'bian',N'變' 
			union all select 'biao',N'鰾' 
			union all select 'bie',N'彆' 
			union all select 'bin',N'鬢' 
			union all select 'bing',N'靐' 
			union all select 'bo',N'蔔' 
			union all select 'bu',N'簿' 
			union all select 'ca',N'囃' 
			union all select 'cai',N'乲' 
			union all select 'can',N'爘' 
			union all select 'cang',N'賶' 
			union all select 'cao',N'鼜' 
			union all select 'ce',N'簎' 
			union all select 'cen',N'笒' 
			union all select 'ceng',N'乽' 
			union all select 'cha',N'詫' 
			union all select 'chai',N'囆' 
			union all select 'chan',N'顫' 
			union all select 'chang',N'韔' 
			union all select 'chao',N'觘' 
			union all select 'che',N'爡' 
			union all select 'chen',N'讖' 
			union all select 'cheng',N'秤' 
			union all select 'chi',N'鷘' 
			union all select 'chong',N'銃' 
			union all select 'chou',N'殠' 
			union all select 'chu',N'矗' 
			union all select 'chuai',N'踹' 
			union all select 'chuan',N'鶨' 
			union all select 'chuang',N'愴' 
			union all select 'chui',N'顀' 
			union all select 'chun',N'蠢' 
			union all select 'chuo',N'縒' 
			union all select 'ci',N'嗭' 
			union all select 'cong',N'謥' 
			union all select 'cou',N'輳' 
			union all select 'cu',N'顣' 
			union all select 'cuan',N'爨' 
			union all select 'cui',N'臎' 
			union all select 'cun',N'籿' 
			union all select 'cuo',N'錯' 
			union all select 'da',N'橽' 
			union all select 'dai',N'靆' 
			union all select 'dan',N'饏' 
			union all select 'dang',N'闣' 
			union all select 'dao',N'纛' 
			union all select 'de',N'的' 
			union all select 'den',N'扽' 
			union all select 'deng',N'鐙' 
			union all select 'di',N'螮' 
			union all select 'dia',N'嗲' 
			union all select 'dian',N'驔' 
			union all select 'diao',N'鑃' 
			union all select 'die',N'嚸' 
			union all select 'ding',N'顁' 
			union all select 'diu',N'銩' 
			union all select 'dong',N'霘' 
			union all select 'dou',N'鬭' 
			union all select 'du',N'蠹' 
			union all select 'duan',N'叾' 
			union all select 'dui',N'譵' 
			union all select 'dun',N'踲' 
			union all select 'duo',N'鵽' 
			union all select 'e',N'鱷' 
			union all select 'en',N'摁' 
			union all select 'eng',N'鞥' 
			union all select 'er',N'樲' 
			union all select 'fa',N'髮' 
			union all select 'fan',N'瀪' 
			union all select 'fang',N'放' 
			union all select 'fei',N'靅' 
			union all select 'fen',N'鱝' 
			union all select 'feng',N'覅' 
			union all select 'fo',N'梻' 
			union all select 'fou',N'鴀' 
			union all select 'fu',N'猤' 
			union all select 'ga',N'魀' 
			union all select 'gai',N'瓂' 
			union all select 'gan',N'灨' 
			union all select 'gang',N'戇' 
			union all select 'gao',N'鋯' 
			union all select 'ge',N'獦' 
			union all select 'gei',N'給' 
			union all select 'gen',N'搄' 
			union all select 'geng',N'堩'
			union all select 'gong',N'兣' 
			union all select 'gou',N'購' 
			union all select 'gu',N'顧' 
			union all select 'gua',N'詿' 
			union all select 'guai',N'恠' 
			union all select 'guan',N'鱹' 
			union all select 'guang',N'撗' 
			union all select 'gui',N'鱥' 
			union all select 'gun',N'謴' 
			union all select 'guo',N'腂' 
			union all select 'ha',N'哈' 
			union all select 'hai',N'饚' 
			union all select 'han',N'鶾' 
			union all select 'hang',N'沆' 
			union all select 'hao',N'兞' 
			union all select 'he',N'靏' 
			union all select 'hei',N'嬒' 
			union all select 'hen',N'恨' 
			union all select 'heng',N'堼' 
			union all select 'hong',N'鬨' 
			union all select 'hou',N'鱟' 
			union all select 'hu',N'鸌' 
			union all select 'hua',N'蘳' 
			union all select 'huai',N'蘾' 
			union all select 'huan',N'鰀' 
			union all select 'huang',N'鎤' 
			union all select 'hui',N'顪' 
			union all select 'hun',N'諢' 
			union all select 'huo',N'夻' 
			union all select 'ji',N'驥' 
			union all select 'jia',N'嗧' 
			union all select 'jian',N'鑳' 
			union all select 'jiang',N'謽' 
			union all select 'jiao',N'釂' 
			union all select 'jie',N'繲' 
			union all select 'jin',N'齽' 
			union all select 'jing',N'竸' 
			union all select 'jiong',N'蘔' 
			union all select 'jiu',N'欍' 
			union all select 'ju',N'爠' 
			union all select 'juan',N'羂' 
			union all select 'jue',N'钁' 
			union all select 'jun',N'攈' 
			union all select 'ka',N'鉲' 
			union all select 'kai',N'乫' 
			union all select 'kan',N'矙' 
			union all select 'kang',N'閌' 
			union all select 'kao',N'鯌' 
			union all select 'ke',N'騍' 
			union all select 'ken',N'褃' 
			union all select 'keng',N'鏗' 
			union all select 'kong',N'廤' 
			union all select 'kou',N'鷇' 
			union all select 'ku',N'嚳' 
			union all select 'kua',N'骻' 
			union all select 'kuai',N'鱠' 
			union all select 'kuan',N'窾' 
			union all select 'kuang',N'鑛' 
			union all select 'kui',N'鑎' 
			union all select 'kun',N'睏' 
			union all select 'kuo',N'穒' 
			union all select 'la',N'鞡' 
			union all select 'lai',N'籟' 
			union all select 'lan',N'糷' 
			union all select 'lang',N'唥' 
			union all select 'lao',N'軂' 
			union all select 'le',N'餎' 
			union all select 'lei',N'脷' 
			union all select 'leng',N'睖' 
			union all select 'li',N'瓈' 
			union all select 'lia',N'倆' 
			union all select 'lian',N'纞' 
			union all select 'liang',N'鍄' 
			union all select 'liao',N'瞭' 
			union all select 'lie',N'鱲' 
			union all select 'lin',N'轥' 
			union all select 'ling',N'炩' 
			union all select 'liu',N'咯' 
			union all select 'long',N'贚' 
			union all select 'lou',N'鏤' 
			union all select 'lu',N'氇' 
			union all select 'lv',N'鑢' 
			union all select 'luan',N'亂' 
			union all select 'lue',N'擽' 
			union all select 'lun',N'論' 
			union all select 'luo',N'鱳' 
			union all select 'ma',N'嘛' 
			union all select 'mai',N'霢' 
			union all select 'man',N'蘰' 
			union all select 'mang',N'蠎' 
			union all select 'mao',N'唜' 
			union all select 'me',N'癦' 
			union all select 'mei',N'嚜' 
			union all select 'men',N'們' 
			union all select 'meng',N'霥' 
			union all select 'mi',N'羃' 
			union all select 'mian',N'麵' 
			union all select 'miao',N'廟' 
			union all select 'mie',N'鱴' 
			union all select 'min',N'鰵' 
			union all select 'ming',N'詺' 
			union all select 'miu',N'謬' 
			union all select 'mo',N'耱' 
			union all select 'mou',N'麰'
			union all select 'mu',N'旀' 
			union all select 'na',N'魶' 
			union all select 'nai',N'錼' 
			union all select 'nan',N'婻' 
			union all select 'nang',N'齉' 
			union all select 'nao',N'臑' 
			union all select 'ne',N'呢' 
			union all select 'nei',N'焾' 
			union all select 'nen',N'嫩' 
			union all select 'neng',N'能' 
			union all select 'ni',N'嬺' 
			union all select 'nian',N'艌' 
			union all select 'niang',N'釀' 
			union all select 'niao',N'脲' 
			union all select 'nie',N'钀' 
			union all select 'nin',N'拰' 
			union all select 'ning',N'濘' 
			union all select 'niu',N'靵' 
			union all select 'nong',N'齈' 
			union all select 'nou',N'譳' 
			union all select 'nu',N'搙' 
			union all select 'nv',N'衄' 
			union all select 'nue',N'瘧' 
			union all select 'nuan',N'燶'
			union all select 'nuo',N'桛' 
			union all select 'o',N'鞰' 
			union all select 'ou',N'漚' 
			union all select 'pa',N'袙' 
			union all select 'pai',N'磗' 
			union all select 'pan',N'鑻' 
			union all select 'pang',N'胖' 
			union all select 'pao',N'礮' 
			union all select 'pei',N'轡' 
			union all select 'pen',N'喯' 
			union all select 'peng',N'喸'
			union all select 'pi',N'鸊' 
			union all select 'pian',N'騙' 
			union all select 'piao',N'慓' 
			union all select 'pie',N'嫳' 
			union all select 'pin',N'聘' 
			union all select 'ping',N'蘋' 
			union all select 'po',N'魄' 
			union all select 'pou',N'哛' 
			union all select 'pu',N'曝' 
			union all select 'qi',N'蟿' 
			union all select 'qia',N'髂' 
			union all select 'qian',N'縴' 
			union all select 'qiang',N'瓩' 
			union all select 'qiao',N'躈' 
			union all select 'qie',N'籡' 
			union all select 'qin',N'藽' 
			union all select 'qing',N'櫦' 
			union all select 'qiong',N'瓗' 
			union all select 'qiu',N'糗' 
			union all select 'qu',N'覻' 
			union all select 'quan',N'勸' 
			union all select 'que',N'礭' 
			union all select 'qun',N'囕' 
			union all select 'ran',N'橪' 
			union all select 'rang',N'讓' 
			union all select 'rao',N'繞' 
			union all select 're',N'熱' 
			union all select 'ren',N'餁' 
			union all select 'reng',N'陾' 
			union all select 'ri',N'馹' 
			union all select 'rong',N'穃' 
			union all select 'rou',N'嶿' 
			union all select 'ru',N'擩' 
			union all select 'ruan',N'礝' 
			union all select 'rui',N'壡' 
			union all select 'run',N'橍' 
			union all select 'ruo',N'鶸' 
			union all select 'sa',N'栍' 
			union all select 'sai',N'虄' 
			union all select 'san',N'閐' 
			union all select 'sang',N'喪' 
			union all select 'sao',N'髞' 
			union all select 'se',N'飋' 
			union all select 'sen',N'篸' 
			union all select 'seng',N'縇' 
			union all select 'sha',N'霎' 
			union all select 'shai',N'曬' 
			union all select 'shan',N'鱔' 
			union all select 'shang',N'緔' 
			union all select 'shao',N'潲' 
			union all select 'she',N'欇' 
			union all select 'shen',N'瘮' 
			union all select 'sheng',N'賸' 
			union all select 'shi',N'瓧' 
			union all select 'shou',N'鏉' 
			union all select 'shu',N'虪' 
			union all select 'shua',N'誜' 
			union all select 'shuai',N'卛' 
			union all select 'shuan',N'腨' 
			union all select 'shuang',N'灀' 
			union all select 'shui',N'睡' 
			union all select 'shun',N'鬊' 
			union all select 'shuo',N'鑠' 
			union all select 'si',N'乺' 
			union all select 'song',N'鎹' 
			union all select 'sou',N'瘶' 
			union all select 'su',N'鷫' 
			union all select 'suan',N'算' 
			union all select 'sui',N'鐩' 
			union all select 'sun',N'潠' 
			union all select 'suo',N'蜶' 
			union all select 'ta',N'襨'
			union all select 'tai',N'燤' 
			union all select 'tan',N'賧' 
			union all select 'tang',N'燙' 
			union all select 'tao',N'畓' 
			union all select 'te',N'蟘' 
			union all select 'teng',N'朰' 
			union all select 'ti',N'趯' 
			union all select 'tian',N'舚' 
			union all select 'tiao',N'糶' 
			union all select 'tie',N'餮' 
			union all select 'ting',N'乭' 
			union all select 'tong',N'憅' 
			union all select 'tou',N'透' 
			union all select 'tu',N'鵵' 
			union all select 'tuan',N'褖' 
			union all select 'tui',N'駾' 
			union all select 'tun',N'坉' 
			union all select 'tuo',N'籜' 
			union all select 'wa',N'韤' 
			union all select 'wai',N'顡' 
			union all select 'wan',N'贎' 
			union all select 'wang',N'朢' 
			union all select 'wei',N'躛' 
			union all select 'wen',N'璺' 
			union all select 'weng',N'齆' 
			union all select 'wo',N'齷' 
			union all select 'wu',N'鶩' 
			union all select 'xi',N'衋' 
			union all select 'xia',N'鏬' 
			union all select 'xian',N'鼸' 
			union all select 'xiang',N'鱌' 
			union all select 'xiao',N'斆' 
			union all select 'xie',N'躞' 
			union all select 'xin',N'釁' 
			union all select 'xing',N'臖' 
			union all select 'xiong',N'敻' 
			union all select 'xiu',N'齅' 
			union all select 'xu',N'蓿' 
			union all select 'xuan',N'贙' 
			union all select 'xue',N'瀥' 
			union all select 'xun',N'鑂' 
			union all select 'ya',N'齾' 
			union all select 'yan',N'灩' 
			union all select 'yang',N'樣' 
			union all select 'yao',N'鑰' 
			union all select 'ye',N'岃' 
			union all select 'yi',N'齸' 
			union all select 'yin',N'檼' 
			union all select 'ying',N'譍' 
			union all select 'yo',N'喲' 
			union all select 'yong',N'醟' 
			union all select 'you',N'鼬' 
			union all select 'yu',N'爩' 
			union all select 'yuan',N'願' 
			union all select 'yue',N'鸙' 
			union all select 'yun',N'韻' 
			union all select 'za',N'雥' 
			union all select 'zai',N'縡' 
			union all select 'zan',N'饡' 
			union all select 'zang',N'臟' 
			union all select 'zao',N'竈' 
			union all select 'ze',N'稄' 
			union all select 'zei',N'鱡' 
			union all select 'zen',N'囎' 
			union all select 'zeng',N'贈' 
			union all select 'zha',N'醡' 
			union all select 'zhai',N'瘵' 
			union all select 'zhan',N'驏' 
			union all select 'zhang',N'瞕' 
			union all select 'zhao',N'羄' 
			union all select 'zhe',N'鷓' 
			union all select 'zhen',N'黮' 
			union all select 'zheng',N'證' 
			union all select 'zhi',N'豒' 
			union all select 'zhong',N'諥' 
			union all select 'zhou',N'驟' 
			union all select 'zhu',N'鑄' 
			union all select 'zhua',N'爪' 
			union all select 'zhuai',N'跩' 
			union all select 'zhuan',N'籑' 
			union all select 'zhuang',N'戅' 
			union all select 'zhui',N'鑆' 
			union all select 'zhun',N'稕' 
			union all select 'zhuo',N'籱' 
			union all select 'zi',N'漬'
			union all select 'zong',N'縱' 
			union all select 'zou',N'媰' 
			union all select 'zu',N'謯' 
			union all select 'zuan',N'攥' 
			union all select 'zui',N'欈' 
			union all select 'zun',N'銌' 
			union all select 'zuo',N'咗') t  
			where word >= @word collate Chinese_PRC_CS_AS_KS_WS  
			order by word collate Chinese_PRC_CS_AS_KS_WS ASC) else @word end) 
		set @i = @i + 1 
	end 
	return @pinyin 
END 

  

ALTER function [dbo].[fn_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

  

原文地址:https://www.cnblogs.com/lccnblog/p/3225359.html