用sql实现汉字转拼音
有时我们会需要将汉字转为拼音,例如需要将省市转为拼音后当做编码存储(尽管国家有统一的标识码,但有时候我们还是会用到),网络上也有工具提供汉字转拼音的功能,但各有优劣,一般转拼音后还会存在带声调的字母,可以用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实现汉字转拼音的更多相关文章
- sql获取汉字的拼音首字母的函数
ql获取汉字的拼音首字母 if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and ...
- sql 函数 汉字转拼音
GO /****** Object: UserDefinedFunction [dbo].[fn_GetPy] Script Date: 2017/1/4 10:53:49 ******/ SET A ...
- sql获取汉字的拼音首字母
if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and xtype in (N'FN' ...
- sql语句 汉字转拼音首字母
(1)------------------------------------------------------------------------------------------------- ...
- sql server 汉字转拼音首字母
create function fun_getPY ( @str nvarchar(4000) ) returns nvarchar(4000) as begin declare @word ncha ...
- SQL Server 汉字转拼音
IF OBJECT_ID('Fn_GetQuanPin','Fn') IS NOT NULL DROP FUNCTION fn_GetQuanPin go )) ) as begin ),) decl ...
- SQL汉字转拼音函数-支持首字母、全拼
SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...
- sql函数:汉字转换为拼音
sql数据库自定义一个函数把下面代码写进去 功能是得到汉字拼音首字母create function fun_getPY(@str nvarchar(4000)) returns nvarchar(40 ...
- oracle 根据汉字返回拼音函数
参见戴明明的博客,oracle 根据汉字返回拼音函数,由于他的博客里没有提供完整的代码,研究了一个多小时,才弄出来: 上来贴代码吧.. --------------Type Definition CR ...
随机推荐
- TCP可靠传输的实现
TCP可靠传输的实现 1.概述 为方便描述可靠传输原理,假定数据传输只在一个方向上进行,即A发送数据,B给出确认 2.以字节为单位的滑动窗口 TCP的滑动窗口是以字节为单位的.为了 ...
- C# 加密总结 一些常见的加密方法
C# 加密总结 一些常见的加密方法 一 散列数据 代码如下: ? private static string CalculateSHA512Hash(string input) { ...
- 输入参数能动态调决定调用哪个实现类 spring的一个特性
今天做公司的以前项目的时候发现项目中有个特别好的东西,记录下来,分享一下 发现spring有个这样的功能,我也不知道这个是东西应该怎么称呼,就是通过输入参数,动态决定调用接口的实现类.简单理解就是在s ...
- day7 面向对象编程
编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...
- hdu 1671 Phone List(字典树)
知道bug的时候我眼泪掉下来... 我的第一道字典树,看了字典树的注意事项和实现方式,我写这道题的时候格外认真,就是奔着1A去的.结果这是几A来着? 第一遍写的时候提交MLA,我看了一下,是因为我释放 ...
- hdu 1253 胜利大逃亡(BFS)
题目链接:点击链接 三维的BFS,刚开始一直超内存,超无语...... 改了n多次终于AC了 #include <iostream> #include <stdio.h> # ...
- Hiberbate中的一对多关联查询
Hibernate中一对多关系的应用 案例:一个人可以拥有多辆小轿车 目的:通过hibernate的相关配置,利用HQL语句成功的查询出某人拥有某些车辆 1. 项目结构 2. domain类的创建详情 ...
- 办理英属哥伦比亚大学(本科)学历认证『微信171922772』UBC学位证成绩单使馆认证University of British Columbia
办理英属哥伦比亚大学(本科)学历认证『微信171922772』UBC学位证成绩单使馆认证University of British Columbia Q.微信:171922772办理教育部国外学历学位 ...
- 【C#】Switch datatype between object and byte[]
This sample shows how to turn object to byte[], as well as turn byte[] to object. So,I can turn any ...
- maven之(六)setting.xml的配置文件详解
setting.xml配置文件 maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.h ...