经典T-SQL[获得汉字字符串的首字母]

原创 2004年10月22日 21:39:00
/*--获得汉字字符串的首字母--*/
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 中国人
select dbo.fgetpy('刘子良') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('吴过') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('东北') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人

--删除拼音函数
drop function fgetpy

iOS获取字符串(或汉字)首字母

//获取某个字符串或者汉字的首字母. - (NSString *)firstCharactorWithString:(NSString *)string {     NSMutabl...
  • Liu_Esther
  • Liu_Esther
  • 2016年06月03日 14:54
  • 3954

获得汉字字符串的首字母(T-SQL函数)

/*--获得汉字字符串的首字母--*/if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[fGetPy]) and...
  • sun418756752
  • sun418756752
  • 2007年01月23日 19:53
  • 1538

Android -- 获取汉字的首字母

转换                                                                                             获取一个...
  • gebitan505
  • gebitan505
  • 2014年08月06日 11:03
  • 8525

Mysql如何获取汉字首字母

排序时或者选择显示时,经常会需要 首字母-中文名称的格式: S - 上海过河兵电子商务有限公司 亲测简单有效的方法...
  • westworld2017163com
  • westworld2017163com
  • 2017年02月20日 15:34
  • 348

根据汉字获取它的字符串拼音首字母(大写),含多音字

/// /// 根据汉字获取它的字符串拼音首字母(大写),含多音字 /// /// /// publi...
  • zhao19890429
  • zhao19890429
  • 2013年12月08日 10:34
  • 3940

java提取每个汉字的首字母

在项目中需要提取每个汉字的首字母,下面是工具类的源码: import net.sourceforge.pinyin4j.PinyinHelper; public class PinyinAPI {...
  • zl544434558
  • zl544434558
  • 2014年03月21日 11:24
  • 1650

oracle得到汉字首字母

最近项目上用到的一个函数,觉得比较有用,记录下来。oracle得到汉字首字母是一个数据库函数,使用时调用这个函数,传参数就可以了。 FUNCTION F_GET_PINYIN(P_NAME IN V...
  • BraveHeart568
  • BraveHeart568
  • 2017年06月28日 10:08
  • 237

取得字符串首字母

Code By 魑魅魍魉mailto:DemonStudio@hotmail.comPrivate Function PYin(ByVal Str As String) As StringDim mL...
  • DemonLoveLizzy
  • DemonLoveLizzy
  • 2004年09月07日 06:34
  • 934

获得汉字拼音首字母的工具类

JAVA进行汉子首字母全拼和汉字全拼,代码总结了网上的代码。 值得注意的是UTF-8的汉字占用3个字符,GBK的占用2个字符,根据实际自行获取判断。 可能还有一些生僻的字符,可以根据实际情况写在配...
  • rubyniurui
  • rubyniurui
  • 2017年03月08日 12:30
  • 221

根据多个汉字,获得每个汉字的首字母集

根据多个汉字,获得每个汉字的首字母集
  • ankeyuan
  • ankeyuan
  • 2014年03月22日 10:56
  • 1048
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:经典T-SQL[获得汉字字符串的首字母]
举报原因:
原因补充:

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