有时我们会需要将汉字转为拼音,例如需要将省市转为拼音后当做编码存储(尽管国家有统一的标识码,但有时候我们还是会用到),网络上也有工具提供汉字转拼音的功能,但各有优劣,一般转拼音后还会存在带声调的字母,可以用sql统一转换。

DROP TABLE PINYIN;

CREATE TABLE PINYIN(ID VARCHAR2(),B VARCHAR2(),C VARCHAR2(),D VARCHAR2(),E VARCHAR2());

--用金山词霸汉字转拼音工具先转有声调的拼音,拷贝到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,,,
select *
from pinyin t
where t.e in (select e from pinyin group by e having count() > )
order by t.e; --和上一步循环执行,直到没有重复项
update pinyin set e=e||''
where pinyin.id in (
select max(id)
from (select t.id, t.b, t.c, t.d, t.e
from pinyin t
where t.e in (select e from pinyin group by e having count() > )
order by t.e) s
group by s.e);
commit; select * from pinyin order by to_number(id) ;

用sql实现汉字转拼音的更多相关文章

  1. sql获取汉字的拼音首字母的函数

    ql获取汉字的拼音首字母   if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and ...

  2. sql 函数 汉字转拼音

    GO /****** Object: UserDefinedFunction [dbo].[fn_GetPy] Script Date: 2017/1/4 10:53:49 ******/ SET A ...

  3. sql获取汉字的拼音首字母

    if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and xtype in (N'FN' ...

  4. sql语句 汉字转拼音首字母

    (1)------------------------------------------------------------------------------------------------- ...

  5. sql server 汉字转拼音首字母

    create function fun_getPY ( @str nvarchar(4000) ) returns nvarchar(4000) as begin declare @word ncha ...

  6. SQL Server 汉字转拼音

    IF OBJECT_ID('Fn_GetQuanPin','Fn') IS NOT NULL DROP FUNCTION fn_GetQuanPin go )) ) as begin ),) decl ...

  7. SQL汉字转拼音函数-支持首字母、全拼

    SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...

  8. sql函数:汉字转换为拼音

    sql数据库自定义一个函数把下面代码写进去 功能是得到汉字拼音首字母create function fun_getPY(@str nvarchar(4000)) returns nvarchar(40 ...

  9. oracle 根据汉字返回拼音函数

    参见戴明明的博客,oracle 根据汉字返回拼音函数,由于他的博客里没有提供完整的代码,研究了一个多小时,才弄出来: 上来贴代码吧.. --------------Type Definition CR ...

随机推荐

  1. hadoop集群环境的搭建

    hadoop集群环境的搭建 今天终于把hadoop集群环境给搭建起来了,能够运行单词统计的示例程序了. 集群信息如下: 主机名 Hadoop角色 Hadoop jps命令结果 Hadoop用户 Had ...

  2. jQuery.fn.attr与jQuery.fn.prop

    jQuery.fn.attr与jQuery.fn.prop jQuery.fn.attr.jQuery.fn.prop的区别 假设页面有下面这么个标签,$('#ddd').attr('nick').$ ...

  3. 一步一步深入spring(1)--搭建和测试spring的开发环境

    1.引用jar包 到spring的网站上下载spring的jar包(本文是2.5.6),解压缩后找到 使用spring必须引用的jar包 spring.jar  commons-logging.jar ...

  4. 在收购Sun六年后,Oracle终于瞄准了Java的非付费用户

    Java语言毫无疑问已经成为软件社区的一个品牌和开放的产业标准.自从2010年Oracle收购了Sun Microsystems公司之后,很多人就担心这在某种程度上是软件开源产业的一次失败,甚至会造成 ...

  5. 求a和b的最大公约数

    题目:求a和b的最大公约数 分析:首先我们要知道最大公约数是什么,就是指两个或多个整数共有约数中最大的一个.好了,知道了最大公约数是什么,就可以求解它了,那么就相当于比较俩个数的约数,取其相等的最大的 ...

  6. 【CSS学习】字符实体

    在html开发中,有一些字符,不适于直接写出,比如:大于号>小于号<<br />一般格式:&+实体名+;实体有很多,记住常用的大于号>小于号<双引号&quo ...

  7. (十一)if...else&for循环&while循环

    ----------------------------------if else------------------------------1.最基本的if语句:if name =="Al ...

  8. 第9章 创建Web数据库

    1.登录MySQL: mysql -h hostname -u username -p password *-h 用于指定所希望连接的主机,即运行MySQL服务器的机器: -u 用于指定连接数据库时使 ...

  9. 定位(position)

    position :属性规定元素的定位类型 语法: position : static | absolute | fixed | relative JavaScript语法:object.style. ...

  10. SQL总结之创建实例表空间监听

    [创建数据库实例]cmd------>dbca[创建表空间-sql创建]create tablespace NSTC_WS logging datafile 'D:\app\dell\orada ...