码迷,mamicode.com
首页 > 数据库 > 详细

生成sqlserver拼音码

时间:2019-07-23 00:38:26      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:encrypt   int   拼音码   set   begin   varchar   汉字   括号   create   

--生成拼音首码  
  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 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) 

 

生成sqlserver拼音码

标签:encrypt   int   拼音码   set   begin   varchar   汉字   括号   create   

原文地址:https://www.cnblogs.com/Thenext/p/11229108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!