sql 取汉字首字母

Create function fn_GetPy(@str  nvarchar(4000))
  returns  nvarchar(4000)  
  --用于加密
  --WITH  ENCRYPTION  
  as  
  begin  
  declare  @intLen int  
  declare  @strRet nvarchar(4000)  
  declare  @temp  nvarchar(100)  
  set  @intLen  =  len(@str)  
  set  @strRet  =  ''  
  while  @intLen  >  0  
  begin  
  set  @temp  =  ''  
  select  @temp  =  case    
  when  substring(@str,@intLen,1)  >=  ''  then  'Z'  
  when  substring(@str,@intLen,1)  >=  ''  then  'Y'  
  when  substring(@str,@intLen,1)  >=  ''  then  'X'  
  when  substring(@str,@intLen,1)  >=  ''  then  'W'  
  when  substring(@str,@intLen,1)  >=  ''  then  'T'  
  when  substring(@str,@intLen,1)  >=  ''  then  'S'  
  when  substring(@str,@intLen,1)  >=  ''  then  'R'  
  when  substring(@str,@intLen,1)  >=  ''  then  'Q'  
  when  substring(@str,@intLen,1)  >=  ''  then  'P'  
  when  substring(@str,@intLen,1)  >=  ''  then  'O'  
  when  substring(@str,@intLen,1)  >=  ''  then  'N'  
  when  substring(@str,@intLen,1)  >=  ''  then  'M'  
  when  substring(@str,@intLen,1)  >=  ''  then  'L'  
  when  substring(@str,@intLen,1)  >=  ''  then  'K'  
  when  substring(@str,@intLen,1)  >=  ''  then    'J'  
  when  substring(@str,@intLen,1)  >=  ''  then  'H'  
  when  substring(@str,@intLen,1)  >=  ''  then  'G'  
  when  substring(@str,@intLen,1)  >=  ''  then  'F'  
  when  substring(@str,@intLen,1)  >=  ''  then  'E'  
  when  substring(@str,@intLen,1)  >=  ''  then  'D'  
  when  substring(@str,@intLen,1)  >=  ''  then  'C'  
  when  substring(@str,@intLen,1)  >=  ''  then  'B'  
  when  substring(@str,@intLen,1)  >=  ''  then  'A'  
  else  rtrim(ltrim(substring(@str,@intLen,1)))  
  end  
  --对于汉字特殊字符,不生成拼音码  
  if  (ascii(@temp)>127)  set  @temp  =  ''  
  --对于英文中小括号,不生成拼音码  
  if  @temp  =  '('  or  @temp  =  ')'  set  @temp  =  ''  
  select  @strRet  =  @temp  +  @strRet  
  set  @intLen  =  @intLen  -  1  
  end  
  return  lower(@strRet)  
  end

调用方法

select dbo.fn_GetPy('汉字') py

 出处:http://www.cnblogs.com/xilipu31/

原文地址:https://www.cnblogs.com/SoftWareIe/p/5048314.html