• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

sqlserver 搞代码 7年前 (2018-06-16) 126次浏览 已收录 0个评论

/*–获得汉字字符串的首字母–*/
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)

http://www.gaodaima.com/36032.html获得汉字字符串的首字母(T-SQL函数)_sqlserver

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–while循环开始
  select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
  
  if @chn>’z’–if开始
   –此处只有一个 select 语句,原理以“字符串排序以及ASCII码表”:
   select @n = @n +1,@c =    –★★★select★★★
    case chn –case开始
     when @chn then char(@n) –case分支
     else @c –case分支
     end –case结束
   from(  –★★★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 ‘r’
   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 –if对应的else 
   set @c=@chn 
  –if结束

  set @return=@return+@c
 end–while循环结束
 

 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 中国人
select dbo.fgetpy(‘王大海八丫’) as 王大海八丫,dbo.fgetpy(‘服盏D’) as 服盏D

–删除拼音函数
drop function fgetpy

欢迎大家阅读《获得汉字字符串的首字母(T-SQL函数)_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:获得汉字字符串的首字母(T-SQL函数)_sqlserver

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址