zoukankan      html  css  js  c++  java
  • 取汉字拼音首字母的存储过程很值得收藏的数据库自定义函数


    /*
    declare @r nvarchar(4000)
    set @r=dbo.fun_getPY ('易天')
    print @r
    */
    Create  function fun_getPY
     (
        @str nvarchar(4000)
     )
    returns nvarchar(4000)
    as
    begin

      declare @word nchar(1),@PY nvarchar(4000)

      set @PY=''

      while len(@str)>0
      begin
        set @word=left(@str,1)

        --如果非汉字字符,返回原字符
        set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
                   then ( 
                                select top 1 PY 
                                from 
                                ( 
                                 select 'A' as PY,N'驁' as word
                                 union all select 'B',N'簿'
                                 union all select 'C',N'錯'
                         union all select 'D',N'鵽'
                         union all select 'E',N'樲'
                         union all select 'F',N'鰒'
                         union all select 'G',N'腂'
                         union all select 'H',N'夻'
                         union all select 'J',N'攈'
                         union all select 'K',N'穒'
                         union all select 'L',N'鱳'
                         union all select 'M',N'旀'
                         union all select 'N',N'桛'
                         union all select 'O',N'漚'
                         union all select 'P',N'曝'
                         union all select 'Q',N'囕'
                         union all select 'R',N'鶸'
                         union all select 'S',N'蜶'
                         union all select 'T',N'籜'
                         union all select 'W',N'鶩'
                         union all select 'X',N'鑂'
                         union all select 'Y',N'韻'
                         union all select 'Z',N'咗'
                          ) T 
                       where word>=@word collate Chinese_PRC_CS_AS_KS_WS 
                       order by PY ASC
                              ) 
                          else @word 
                     end)
        set @str=right(@str,len(@str)-1)
      end

      return @PY

    end

     

     

  • 相关阅读:
    Java 在方法和作用域内的内部类
    java 内部类和向上转型
    java 内部类使用 .this 和 .new
    java innerclasses(内部类)
    Java过滤器与SpringMVC拦截器之间的关系与区别
    Maven异常:Could not find artifact
    soapUI测试webservice(参数为xml格式的处理方式)
    maven仓库加载本地包依赖
    spring data jpa的学习总结
    Java 中常用缓存Cache机制的实现
  • 原文地址:https://www.cnblogs.com/yitian/p/921419.html
Copyright © 2011-2022 走看看