发布网友 发布时间:2022-04-30 19:50
共3个回答
懂视网 时间:2022-05-01 00:12
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获取汉字首字母
标签:
热心网友 时间:2022-04-30 21:20
DECLARE @str VARCHAR(100)
SET @str = '汉字的首字母'
SELECT @str AS A, dbo.fun_getPY(@str) AS B
先执行上面的那个函数,然后在执行下面的那个语句,就可以得到你要的结果了。
热心网友 时间:2022-04-30 22:38
先把汉字转成拼音,然后取第一个字母,转拼音可参考http://wenku.baidu.com/link?url=gke8EBkpsP27YRKgOaqLqjYVQDqfUsbfi804F_EMDG0_HJQ7etmRQ8HUYjG13cdyUbHz67n4RPmFxOOYgU7lRLLhBpR_Pt5zouVxBXciJ__,取第一个字母=left(字符串,1)