zoukankan      html  css  js  c++  java
  • 生成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) 
  • 相关阅读:
    BZOJ#2820. YY的GCD
    BZOJ#3771. Triple(FFT+生成函数)
    BZOJ#4503. 两个串
    HDU#4609. 3-idiots
    UVA 12298 Super Poker II(FFT+母函数)
    HDU#1402. A×B
    树状数组的区间修改与区间查修
    COCI. DIFERENCIJA(序列处理中的小技巧)
    dt.select默认不区分大小写
    缓存,缓存算法和缓存框架
  • 原文地址:https://www.cnblogs.com/Thenext/p/11229108.html
Copyright © 2011-2022 走看看