码迷,mamicode.com
首页 > 数据库 > 详细

SQL获取汉字首字母

时间:2016-01-07 16:34:28      阅读:391      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!