用sql实现汉字转拼音
生活随笔
收集整理的這篇文章主要介紹了
用sql实现汉字转拼音
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有時我們會需要將漢字轉為拼音,例如需要將省市轉為拼音后當做編碼存儲(盡管國家有統一的標識碼,但有時候我們還是會用到),網絡上也有工具提供漢字轉拼音的功能,但各有優劣,一般轉拼音后還會存在帶聲調的字母,可以用sql統一轉換。
DROP TABLE PINYIN;CREATE TABLE PINYIN(ID VARCHAR2(200),B VARCHAR2(200),C VARCHAR2(200),D VARCHAR2(200),E VARCHAR2(200));--用金山詞霸漢字轉拼音工具先轉有聲調的拼音,拷貝到E列中 --將excel中的數據首列加上ID,然后拷貝到該表中,B:省份,C:城市,D:區縣,E:拼音 SELECT * FROM PINYIN FOR UPDATE;--將聲調替換為字母,因為帶聲調的都是元音字母,因此只需要替換5*4個聲調即可 update pinyin t set t.e=REPLACE (T.e,'ā','a'); update pinyin t set t.e=REPLACE (T.e,'á','a'); update pinyin t set t.e=REPLACE (T.e,'ǎ','a'); update pinyin t set t.e=REPLACE (T.e,'à','a'); update pinyin t set t.e=REPLACE (T.e,'ō','o'); update pinyin t set t.e=REPLACE (T.e,'ó','o'); update pinyin t set t.e=REPLACE (T.e,'ǒ','o'); update pinyin t set t.e=REPLACE (T.e,'ò','o'); update pinyin t set t.e=REPLACE (T.e,'ê','e'); update pinyin t set t.e=REPLACE (T.e,'ē','e'); update pinyin t set t.e=REPLACE (T.e,'é','e'); update pinyin t set t.e=REPLACE (T.e,'ě','e'); update pinyin t set t.e=REPLACE (T.e,'è','e'); update pinyin t set t.e=REPLACE (T.e,'ī','i'); update pinyin t set t.e=REPLACE (T.e,'í','i'); update pinyin t set t.e=REPLACE (T.e,'ǐ','i'); update pinyin t set t.e=REPLACE (T.e,'ì','i'); update pinyin t set t.e=REPLACE (T.e,'ū','u'); update pinyin t set t.e=REPLACE (T.e,'ú','u'); update pinyin t set t.e=REPLACE (T.e,'ǔ','u'); update pinyin t set t.e=REPLACE (T.e,'ù','u'); update pinyin t set t.e=REPLACE (T.e,'ǖ','v'); update pinyin t set t.e=REPLACE (T.e,'ǘ','v'); update pinyin t set t.e=REPLACE (T.e,'ǚ','v'); update pinyin t set t.e=REPLACE (T.e,'ǜ','v'); update pinyin t set t.e=REPLACE (T.e,'ü','v');--去首尾空格,并且首字母大寫 update pinyin set e=trim(e); update pinyin set e=initcap(e);--查詢有無重復的拼音,給重復的拼音后面加2,3,4,5 select *from pinyin twhere t.e in (select e from pinyin group by e having count(1) > 1)order by t.e;--和上一步循環執行,直到沒有重復項update pinyin set e=e||'2'where pinyin.id in (select max(id)from (select t.id, t.b, t.c, t.d, t.efrom pinyin twhere t.e in (select e from pinyin group by e having count(1) > 1)order by t.e) sgroup by s.e);commit;select * from pinyin order by to_number(id) ;?
轉載于:https://www.cnblogs.com/eva-wu/p/3459728.html
總結
以上是生活随笔為你收集整理的用sql实现汉字转拼音的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 27、资金管理
- 下一篇: 汉诺塔问题(含四柱加强版)