SQL获取汉字首字母
时间:2021-07-01 10:21:17
帮助过:5人阅读
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获取汉字首字母
标签: