生成sqlserver拼音码

Posted thenext

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成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,@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拼音码的主要内容,如果未能解决你的问题,请参考以下文章

sql函数--汉字转拼音(亲测sqlserver可用)

SqlServer 获取汉字的拼音首字母

sqlserver怎么建立索引

MSSQL 生成拼音码

java js 汉字对应拼音码,五笔码转换

sql索引创建