首页 > 数据库技术 > 详细

SQL获取汉字首字母

时间:2016-01-07 16:33:51      阅读:226      评论:0      收藏:0      [点我收藏+]
create function 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
go

update BY_CustomerContacter Set Initials=upper(substring(dbo.f_GetPy(ContacterName), 1, 1))
update BY_SupplierContacter Set Initials=upper(substring(dbo.f_GetPy(ContacterName), 1, 1))

drop function dbo.f_GetPy

select Initials,ContacterName,Id from BY_CustomerContacter order by Initials asc
select Initials,ContacterName,Id from BY_SupplierContacter order by Initials asc

 

SQL获取汉字首字母

原文:http://www.cnblogs.com/deep-blue/p/5110051.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!