`
sjk2013
  • 浏览: 2189240 次
文章分类
社区版块
存档分类
最新评论

拼音处理

 
阅读更多

/*-1.-获得汉字字符串的首字母

根据大力的贴子改成.将大力的两个函数合并成了一个函数.
可以应用于助记码的查询
--转载(最早见于j9988的发表,具体原作者不明)--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fGetPy]
GO

--创建取拼音函数
create function fGetPy(@Str varchar(500)='')
returns varchar(500)
as
begin
declare @strlen int,@return varchar(500),@ii int
declare @n int,@c char(1),@chn nchar(1)

select @strlen=len(@str),@return='',@ii=0
set @ii=0
while @ii<@strlen
begin
select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
if @chn>'z'
select @n = @n +1
,@c = case chn when @chn then char(@n) else @c end
from(
select top 27 * from (
select chn = '吖'
union all select '八'
union all select '嚓'
union all select '咑'
union all select '妸'
union all select '发'
union all select '旮'
union all select '铪'
union all select '丌'--because have no 'i'
union all select '丌'
union all select '咔'
union all select '垃'
union all select '嘸'
union all select '拏'
union all select '噢'
union all select '妑'
union all select '七'
union all select '呥'
union all select '仨'
union all select '他'
union all select '屲'--no 'u'
union all select '屲'--no 'v'
union all select '屲'
union all select '夕'
union all select '丫'
union all select '帀'
union all select @chn) as a
order by chn COLLATE Chinese_PRC_CI_AS
) as b
else set @c='a'
set @return=@return+@c
end
return(@return)
end

go
--测试
select dbo.fgetpy('东莞市') as 东莞市,dbo.fgetpy('ab中c国人') as 中国人

--删除拼音函数
drop function fgetpy



/*2.--获得汉字拼音的函数

需要创建一个拼音表,包含所有汉字的发音,这个可以通过转换全拼输入法的编码库得到,这里仅举了一个简单的例子.
--*/

--创建汉字拼音库
create table YingShe(CHR char(2),PY varchar(10))
insert YingShe
select '长','chang'
union all select '长','zhang'
union all select '城','cheng'
union all select '科','kel'
union all select '技','ji'
union all select '金','jin'
union all select '立','li'
union all select '章','zhang'
union all select '公','gong'
union all select '司','si'

/*--下面是两个函数,一个以表的形式返回某个字符串的全部拼音,一个返回某某个字符串的其中一个拼音
--*/

--获取汉字拼音的函数--返回所有的拼音
create function f_getpy_tb(@str varchar(100))
returns @tb table(re varchar(8000))
as
begin
declare @re table(id int,re varchar(8000)) --数据处理中间表

declare @i int,@ilen int,@splitchr varchar(1)
select @splitchr=' '--两个拼音之间的分隔符(目的是为了通用性考虑)
,@i=1,@ilen=len(@str)

insert into @re select @i,py from YingShe where chr=substring(@str,@i,1)
while @i<@ilen
begin
set @i=@i+1
insert into @re select @i,re+@splitchr+py from @re a,YingShe b
where a.id=@i-1 and b.chr=substring(@str,@i,1)
end

insert into @tb select re from @re where id=@i
return
end
go

--获取汉字拼音的函数--返回汉字的某一个拼音
create function f_getpy(@str varchar(100))
returns varchar(8000)
as
begin
declare @re varchar(8000)

declare @i int,@ilen int,@splitchr varchar(1)
select @splitchr=' '--两个拼音之间的分隔符(目的是为了通用性考虑)
,@i=1,@ilen=len(@str)

select @re=py from YingShe where chr=substring(@str,@i,1)
while @i<@ilen
begin
set @i=@i+1
select top 1 @re=@re+@splitchr+py
from YingShe where chr=substring(@str,@i,1)
end

return(@re)
end
go

--测试
--返回'长城'的所有可能拼音
select * from dbo.f_getpy_tb('长城')

--返回'长城'的拼音
select dbo.f_getpy('长城')

--删除拼音函数
drop function f_getpy,f_getpy_tb

分享到:
评论

相关推荐

    php汉字拼音处理

    php汉字拼音处理

    c++拼音处理类.rar

    可称为完备又好用的c++拼音处理类,从功能上来说不比java的类库差。非常简单,只有一个类

    UTF8中文转拼音处理类.zip

    PHP的UTF-8中文转拼音处理类,性能已经优化到极致,.优化了传统的拼音转换处理类的算法,专门针对UTF-8字符集进行处理,中文转换到拼音(每次处理一个字符)。如果你使用GBK或GB2312字符集,只需要去掉iconv函数,直接...

    UTF8中文转拼音处理类

    PHP的UTF-8中文转拼音处理类,性能已经优化到极致,.优化了传统的拼音转换处理类的算法,专门针对UTF-8字符集进行处理,中文转换到拼音(每次处理一个字符)。如果你使用GBK或GB2312字符集,只需要去掉iconv函数,直接...

    基于Java实现的短语搜索,支持公司名称、地址名称等短语的搜索,支持自定义排序、拼音处理,内置jetty提供web接口

    基于Java实现的短语搜索,支持公司名称、地址名称等短语的搜索,支持自定义排序、拼音处理,内置jetty提供web接口 使用方法: cd phrase-search unix类操作系统执行: chmod +x startup.sh & ./startup.sh ...

    简单好用的PHP-UTF8中文转拼音处理类

    简单好用的PHP-UTF8中文转拼音处理类,一个PHP类文件加载进来即可使用

    postgreSQL 拼音字库 汉字转拼音 8.4

    网上传的postgreSQL汉字转拼音的方法,是针对9.3的版本(相信你要是8.4的也搜到了但不能直接用,才来看我的),尝试了8.4的版本来做拼音处理。发现网上的《postgreSQL汉字转拼音》里面坑比较多,尝试纠正了一下,发...

    ios汉语拼音处理

    汉字ios拼音转换。

    java处理拼音API

    java提供处理中文拼音处理的API,不过是英文的。

    postgresql汉字转拼音函数

    支持2万+汉字转拼音

    pinyin4j Android通讯录排序拼音处理包+文档

    Android WaterFall瀑布流图片布局源码,包括有安卓瀑布流中流动的单元代码,现在不管是WEB上还是手机上都流行这个,很不错的例子,生成有APK,可拷贝到手机上运行看效果。代码中的注释也是挺多的,对学习瀑布流有...

    PYB.rar_Winpy.txt_delphi TXT_十六进制_拼音输入法

    拼音处理模块原理及补充说明: 原理: 根据操作系统拼音输入法的对照表。 提取出简单的单字对照表,用于待开发系统的拼音汉字转换。 主要用途:输入拼音头的汉字检索 拼音对照表(简表)结构: 以汉字‘啊’的...

    汉字转拼音(支持生僻字)

    注:由于拼音对照表有一些错误,我暂时没有找到更好的拼音对照表,自己改正了一些错误,请大家根据需要自己改正(只需要修改数组里面的数据即可),没有做多音字处理! 此为C++源代码,下载的同学请注意。。。。。...

    Drupal7中文附件乱码解决

    解决Drupal7中文附件和图片乱码问题。中文附件使用的原生态处理方式,上传什么文件名显示什么...安装启用附件中的transliteration模块,该附件在原版基础上修改过,对附件不做处理,对图片字段采用汉字转拼音处理。

    WP7汉语拼音多音字处理源码2012720

    WP7汉语拼音多音字处理源码 源码描述: Windows Phone 上的汉语拼音以及多音字处理 利用了Reflector,然后提取资源文件(其实就是一个字典), 修改移植到了Windows Phone平台。 效率不是很高,欢迎感兴趣的用户...

    该代码可以将汉字转全拼音。但是里面对多音字没有多加处理,但是都是常用音为主

    该代码可以将汉字转全拼音。但是里面对多音字没有多加处理,但是都是常用音为主

    拼音输入法自然语言处理

    两个py文件,一个是利用文本训练并保存,另外一个是拼音转汉字,基于隐马尔可夫模型HMM,拼音输入法可以按注音符号与汉语拼音两种汉字拼音方案分成两大类。汉语拼音输入法的编码是依据汉语拼音方案(汉字的读音)...

    Java汉字转拼音(支持多音字)

    Java汉字转拼音(支持多音字)

    经典SQL脚本大全

    │ │ 4.2.1 排序规则在拼音处理中的应用.sql │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │ │ │ └─其他 │ 生成GB2312汉字表.sql │ 生成GBK汉字表.sql │ 自动获取汉字笔画.sql │ ├─第05章 │ │...

Global site tag (gtag.js) - Google Analytics