如何通过UDF实现查询汉字拼音的首字母?

原创 2004年10月24日 14:34:00

--//下面的stored procedure 是获得汉字字符串的首字母
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[udf_GetFirst_Py]') and xtype in (N'FN', N'IF',N'TF'))
drop function [dbo].[udf_GetFirst_Py]
GO
Create function udf_GetFirst_Py
(@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
--//确认输入不为空
if @strlen=0
begin
select @return='Please input chatacter!'
return(@return)
end
--//循环整个字符串,用拼音的首字母替换汉字
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 '丌'
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 '屲'
union all
select '屲'
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=@chn
set @return=@return+@c
end
return(@return)
end
go
--//测试
select dbo.udf_GetFirst_Py('上海市') ,dbo.udf_GetFirst_Py('ab相同test读音')
,dbo.udf_GetFirst_Py('')
"王挺" wrote in message

 

ORACLE 提取汉字拼音首字母及汉字排序

1、按首字母排序  在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值      SCHINESE_RADICAL_M   按照部首(第一顺序)、笔划(第二顺序)排序 ...
  • wxw6782829
  • wxw6782829
  • 2016年12月02日 16:49
  • 515

使用ORACLE函数实现按汉字拼音首字母查询

from:http://www.codesky.net/article/201010/141945.html CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CA...
  • jgmydsai
  • jgmydsai
  • 2013年09月04日 09:34
  • 1458

ORACLE函数获取汉字拼音首字母

ORACLE函数获取汉字拼音首字母 /*------增加:yl--*/ oracle 中 NLSSORT函数的用法 NLSSORT(),用来进行语言排序 拼音 SELECT * FR...
  • lixing732100721
  • lixing732100721
  • 2013年12月01日 22:10
  • 6268

SQL取汉字拼音首字母的存储过程、函数

Create  function fun_getPY (    @str nvarchar(4000) )returns nvarchar(4000)asbegin   declare @word n...
  • belllab
  • belllab
  • 2007年04月06日 12:23
  • 746

PHP中如何实现首字母数据查询

PHP开发的皮肤科网站中有根据26个字母来查询文章标题中首字母符合条件的数据查询功能,但是之前在.net中可以使用的功能在PHP中是不能用的。 所以就找到一种解决方案, 首先要在皮肤科数据...
  • momo_mutou
  • momo_mutou
  • 2014年07月13日 17:30
  • 989

mysql 查询汉字的全拼音以及查询各个汉字的拼音首字母

查询汉字的全拼音-- 创建汉字拼音对照临时表 CREATE TABLE IF NOT EXISTS `t_base_pinyin` ( `pin_yin_` varchar(255) CHARAC...
  • qwdafedv
  • qwdafedv
  • 2016年11月09日 15:24
  • 949

python获取中文拼音首字母以进行检索

最近在项目中有这个一个需求,就是要进行首字母查询,就是搜索"王菲",可以用"wf"来搜索。搜索了一下,没有现在的python代码,倒有现成的php代码。修改一下,成了以下的代码:def multi_g...
  • liveguanquan
  • liveguanquan
  • 2010年11月26日 17:40
  • 3444

PHP获取汉字拼音首字母

  • liuzp111
  • liuzp111
  • 2014年09月02日 14:36
  • 2458

Java获取中文拼音、中文首字母缩写和中文首字母

我们有时候会遇到这样的情况,需要获取某些中文的拼音、中文首字母缩写和中文首字母,下面我将为大家介绍一下如何获取中文拼音的缩写。 1、项目建立和配置 首先,我们建立一个java项目,新建libs文件夹并...
  • u013043346
  • u013043346
  • 2015年12月01日 16:35
  • 7721

MSSQL 获取汉字的首拼音 MYSQL 获取汉字的首拼音

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /*获取汉字的首拼音*/ create function [dbo].[fun_getPY] ...
  • c_enhui
  • c_enhui
  • 2014年12月23日 13:44
  • 552
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何通过UDF实现查询汉字拼音的首字母?
举报原因:
原因补充:

(最多只允许输入30个字)