SQL SERVER取得汉字的拼音缩写
2010-01-27 10:41
246 查看
原文在此,http://www.cnblogs.com/wuhuacong/archive/2010/01/25/1655916.html
代码/*
取得汉字的拼音缩写
*/
CREATE function [dbo].f_GetPy
(
@str nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @strlen int,@re nvarchar(4000)
declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
insert into @t(chr,letter)
select '吖 ', 'A ' union all select '八 ', 'B ' union all
select '嚓 ', 'C ' union all select '咑 ', 'D ' union all
select '妸 ', 'E ' union all select '发 ', 'F ' union all
select '旮 ', 'G ' union all select '铪 ', 'H ' union all
select '丌 ', 'J ' union all select '咔 ', 'K ' union all
select '垃 ', 'L ' union all select '嘸 ', 'M ' union all
select '拏 ', 'N ' union all select '噢 ', 'O ' union all
select '妑 ', 'P ' union all select '七 ', 'Q ' union all
select '呥 ', 'R ' union all select '仨 ', 'S ' union all
select '他 ', 'T ' union all select '屲 ', 'W ' union all
select '夕 ', 'X ' union all select '丫 ', 'Y ' union all
select '帀 ', 'Z '
select @strlen=len(@str),@re= ' '
while @strlen> 0
begin
select top 1 @re=letter+@re,@strlen=@strlen-1
from @t a where chr <=substring(@str,@strlen,1)
order by chr desc
if @@rowcount=0
select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
end
return(@re)
end
执行结果:
select dbo.f_GetPy('博客园')
/*
-------------------
BKY
(所影响的行数为 1 行)
*/
代码/*
取得汉字的拼音缩写
*/
CREATE function [dbo].f_GetPy
(
@str nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @strlen int,@re nvarchar(4000)
declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
insert into @t(chr,letter)
select '吖 ', 'A ' union all select '八 ', 'B ' union all
select '嚓 ', 'C ' union all select '咑 ', 'D ' union all
select '妸 ', 'E ' union all select '发 ', 'F ' union all
select '旮 ', 'G ' union all select '铪 ', 'H ' union all
select '丌 ', 'J ' union all select '咔 ', 'K ' union all
select '垃 ', 'L ' union all select '嘸 ', 'M ' union all
select '拏 ', 'N ' union all select '噢 ', 'O ' union all
select '妑 ', 'P ' union all select '七 ', 'Q ' union all
select '呥 ', 'R ' union all select '仨 ', 'S ' union all
select '他 ', 'T ' union all select '屲 ', 'W ' union all
select '夕 ', 'X ' union all select '丫 ', 'Y ' union all
select '帀 ', 'Z '
select @strlen=len(@str),@re= ' '
while @strlen> 0
begin
select top 1 @re=letter+@re,@strlen=@strlen-1
from @t a where chr <=substring(@str,@strlen,1)
order by chr desc
if @@rowcount=0
select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
end
return(@re)
end
执行结果:
select dbo.f_GetPy('博客园')
/*
-------------------
BKY
(所影响的行数为 1 行)
*/
相关文章推荐
- 取得汉字拼音缩写的函数!
- SQL Server根据汉字笔划和取得拼音首字母进行排序
- 11.2 如何取得汉字的拼音或者拼音首字母缩写?
- SQL SERVER利用排序规则特点计算汉字笔划和取得拼音首字母
- SQL SERVER利用排序规则特点计算汉字笔划和取得拼音首字母
- [C#程序]汉字转拼音缩写的函数
- 利用排序规则特点计算汉字笔划和取得拼音首字母
- C#实现汉字转换为拼音缩写的代码
- delphi 将汉字翻译成拼音缩写的函数介绍
- SQL Server中取汉字拼音的函数
- 汉字转拼音缩写
- 利用排序规则特点计算汉字笔划和取得拼音首字母
- 汉字转换为拼音以及缩写(javascript)
- 汉字转拼音缩写
- 汉字转拼音缩写取首字母
- 利用排序规则特点计算汉字笔划和取得拼音首字母(转)
- Sql Server 汉字转拼音首写字母(无数据表版)
- [sql server] 取汉字 拼音 首字母
- 转换字符串中汉字为其拼音缩写(C#)
- 汉字转拼音缩写的函数以及其他函数