您现在的位置: 万盛学电脑网 >> 程序编程 >> 数据库 >> mssql数据库 >> 正文

SQL Server编写函数获取汉字的拼音码

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   SQL Server编写函数获取汉字的拼音码(首字母)

  Create function fun_getPY ( @str nvarchar(4000) )

  returns nvarchar(4000)

  as

  begin

  declare @word nchar(1),@PY nvarchar(4000)

  set @PY=''

  while len(@str)>0

  begin

  set @word=left(@str,1)

  --如果非汉字字符,返回原字符

  set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901

  then (

  select top 1 PY

  from

  (

  select 'A' as PY,N'骜' as word

  union all select 'B',N'簿'

  union all select 'C',N'错'

  union all select 'D',N'鵽'

  union all select 'E',N'樲'

  union all select 'F',N'鳆'

  union all select 'G',N'腂'

  union all select 'H',N'夻'

  union all select 'J',N'攈'

  union all select 'K',N'穒'

  union all select 'L',N'鱳'

  union all select 'M',N'旀'

  union all select 'N',N'桛'

  union all select 'O',N'沤'

  union all select 'P',N'曝'

  union all select 'Q',N'囕'

  union all select 'R',N'鶸'

  union all select 'S',N'蜶'

  union all select 'T',N'箨'

  union all select 'W',N'鹜'

  union all select 'X',N'鑂'

  union all select 'Y',N'韵'

  union all select 'Z',N'咗'

  ) T

  where word>=@word collate Chinese_PRC_CS_AS_KS_WS

  order by PY ASC

  )

  else @word

  end)

  set @str=right(@str,len(@str)-1)

  end

  return @PY

  end

  --调用

  select dbo.fun_getpy('张三')

  --结果:ZS