有时我们会需要将汉字转为拼音,例如需要将省市转为拼音后当做编码存储(尽管国家有统一的标识码,但有时候我们还是会用到),网络上也有工具提供汉字转拼音的功能,但各有优劣,一般转拼音后还会存在带声调的字母,可以用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. SOA体系结构基础培训教程

    SOA体系结构基础培训教程-规范标准篇 引子:本文是<SOA体系结构基础培训教程>第3章<SOA标准与规范>课件,版权所有,转载请注明出处. 随着SOA在业界的应用日益广泛,S ...

  2. .NET框架设计—常被忽视的C#设计技巧

    .NET框架设计—常被忽视的C#设计技巧 阅读目录: 1.开篇介绍 2.尽量使用Lambda匿名函数调用代替反射调用(走进声明式设计) 3.被忽视的特性(Attribute)设计方式 4.扩展方法让你 ...

  3. COFF/PE文件结构

    COFF/PE文件结构 原创 C++应用程序在Windows下的编译.链接(二)COFF/PE文件结构 2.1概述 在windows操作系统下,可执行文件的存储格式是PE格式:在Linux操作系统下, ...

  4. 输入参数能动态调决定调用哪个实现类 spring的一个特性

    今天做公司的以前项目的时候发现项目中有个特别好的东西,记录下来,分享一下 发现spring有个这样的功能,我也不知道这个是东西应该怎么称呼,就是通过输入参数,动态决定调用接口的实现类.简单理解就是在s ...

  5. 解决TXT乱码问题

    初装Ubuntu,打开windows保存的txt文件很可能会遇到各种乱码问题. 下面是wiki ubuntu里的解决办法: Gedit中文乱码 缺省配置下,用 Ubuntu 的文本编辑器(gedit) ...

  6. [置顶] C语言中各种数据类型的长度 sizeof char, short, int, long, long long

    这些数据类型的sizeof具体长度依赖于编译器和操作系统(32-bit or 64-bit) 1: 首先,参见c99标准 标准中没有定义这些数据类型的长度,而是定义了这些数据类型能表达的大小范围的最小 ...

  7. android jni——helloworld

    看了网上好多牛人写的学习系列都是用HelloWorld作为开始,我们这里也用HelloWorld来开始我们的学习,首先我们来介绍下JNI吧. JNI作为java代码和C/C++的桥梁而存在的,为了让j ...

  8. 【Servlet3.0新特性】第03节_文件上传

    这是一个Web Project 首先是web.xml <?xml version="1.0" encoding="UTF-8"?> <web- ...

  9. Android开发(19)---常见dialog对话框的运用

    Dialog是android开发过程中最常用到的组件之一,Dialog的创立办法有两种: 一是直接new一个Dialog目标,然后调用Dialog目标的show和dismiss办法来操控对话框的显现和 ...

  10. spring mvc后台接收中文乱码

    可从如下几方面着手 1.jsp页面编码 2.web.xml配置字符过滤器,该字符过滤器最好放在开头 3.tomcat下server.xml添加URIEncoding="UTF-8" ...