萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> SQL Server編寫函數獲取漢字的拼音碼

SQL Server編寫函數獲取漢字的拼音碼

   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

copyright © 萬盛學電腦網 all rights reserved