微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

生成sqlserver拼音码

--生成拼音首码  
  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,1)  >=    then  Y  
  when  substring(@str,1)  >=    then  X  
  when  substring(@str,1)  >=    then  W  
  when  substring(@str,1)  >=    then  T  
  when  substring(@str,1)  >=    then  S  
  when  substring(@str,1)  >=    then  R  
  when  substring(@str,1)  >=    then  Q  
  when  substring(@str,1)  >=    then  P  
  when  substring(@str,1)  >=    then  O  
  when  substring(@str,1)  >=    then  N  
  when  substring(@str,1)  >=    then  M  
  when  substring(@str,1)  >=    then  L  
  when  substring(@str,1)  >=    then  K  
  when  substring(@str,1)  >=    then    J  
  when  substring(@str,1)  >=    then  H  
  when  substring(@str,1)  >=    then  G  
  when  substring(@str,1)  >=    then  F  
  when  substring(@str,1)  >=    then  E  
  when  substring(@str,1)  >=    then  D  
  when  substring(@str,1)  >=    then  C  
  when  substring(@str,1)  >=    then  B  
  when  substring(@str,1)  >=    then  A  
  else  rtrim(ltrim(substring(@str,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 Product_ID,dbo.fn_GetPy(Product_Name) AS pymc FROM dbo.T_Product

update dbo.T_Product set  Product_Pinyin=dbo.fn_GetPy(Product_Name) 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐