zoukankan      html  css  js  c++  java
  • sql标量值函数,将汉字转化为拼音,无音标

    USE [db_Test]
    GO

    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    create 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(1),'')+
    (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 ASC) else @word end)
    set @i = @i + 1
    end
    return @pinyin
    END

    GO

    select dbo.fn_GetPinyin('我是胖大海')--必须加 dbo

  • 相关阅读:
    JZOJ_5838. 【广州市选2011一试】旅游路线 (Standard IO)
    JZOJ_4421. aplusb (Standard IO)
    JZOJ_3928. 射击 (Standard IO)
    JZOJ_3927. 可见点数 (Standard IO)
    AFO
    基础数论Ⅱ——笑容渐渐消失
    基础数论Ⅰ——数学渣默默流泪
    模板——二分
    模板——最小费用流
    模板——Dinic
  • 原文地址:https://www.cnblogs.com/xsj1989/p/4876528.html
Copyright © 2011-2022 走看看