WEB开发网
开发学院数据库MSSQL Server 取汉字拼音首字母的存储过程 阅读

取汉字拼音首字母的存储过程

 2007-11-11 07:38:11 来源:WEB开发网   
核心提示: Create function fun_getPY ( @str nvarchar(4000) ) returns nvarchar(4000) as begin declare @word nchar(1),@PY nvarchar(4000) set @PY='' whil
  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

Tags:汉字 拼音 字母

编辑录入:coldstar [复制链接] [打 印]
赞助商链接