zoukankan      html  css  js  c++  java
  • 获得汉字字符串的首字母

    根据大力的贴子改成.将大力的两个函数合并成了一个函数.  
            可以应用于助记码的查询  
      --转载(最早见于j9988的发表,具体原作者不明)--*/  
      if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[fGetPy]')   and   xtype   in   (N'FN',   N'IF',   N'TF'))  
      drop   function   [dbo].[fGetPy]  
      GO  
       
      --创建取拼音函数  
      create   function   fGetPy(@Str   varchar(500)='')  
      returns   varchar(500)  
      as  
      begin  
        declare   @strlen   int,@return   varchar(500),@ii   int  
        declare   @n   int,@c   char(1),@chn   nchar(1)  
       
        select   @strlen=len(@str),@return='',@ii=0  
        set   @ii=0  
        while   @ii<@strlen  
        begin  
          select   @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)  
          if   @chn>'z'  
          select   @n   =   @n   +1  
                ,@c   =   case   chn   when   @chn   then   char(@n)   else   @c   end  
            from(  
              select   top   27   *   from   (  
                select   chn   =   '吖'  
                union   all   select   '八'  
                union   all   select   '嚓'  
                union   all   select   '咑'  
                union   all   select   '妸'  
                union   all   select   '发'  
                union   all   select   '旮'  
                union   all   select   '铪'  
                union   all   select   '丌'     --because   have   no   'i'  
                union   all   select   '丌'  
                union   all   select   '咔'  
                union   all   select   '垃'  
                union   all   select   '呒'  
                union   all   select   '拏'  
                union   all   select   '噢'  
                union   all   select   '妑'  
                union   all   select   '七'  
                union   all   select   '呥'  
                union   all   select   '仨'  
                union   all   select   '他'  
                union   all   select   '屲'     --no   'u'  
                union   all   select   '屲'     --no   'v'  
                union   all   select   '屲'  
                union   all   select   '夕'  
                union   all   select   '丫'  
                union   all   select   '帀'  
                union   all   select   @chn)   as   a  
              order   by   chn   COLLATE   Chinese_PRC_CI_AS    
            )   as   b  
          else   set   @c=@chn         --这里我改了一下,英文的字母保持不变  
          set   @return=@return+@c  
        end  
        return(@return)  
      end  
       
      go  
      --测试  
      select   dbo.fgetpy('东莞市')   as   东莞市,dbo.fgetpy('ab中c国人')   as   中国人  
       
      --删除拼音函数  
      drop   function   fgetpy

    select   name,value,dbo.fun_getPY(left(name,1))   as   pinyin  
      from   a

    create   view   v_a  
      as  
      select   name,value,dbo.fun_getPY(left(name,1))   as   pinyin  
      from   a

  • 相关阅读:
    前端开发规范:命名规范、html 规范、css 规范、js 规范
    node.js入门系列(一)--Node.js简介
    浅析前端开发中的 MVC/MVP/MVVM 模式
    网页加载进度条的实现
    JavaScript深入系列(一)--原型和原型链详解
    vue2.0项目实战(5)vuex快速入门
    既然写CSS很容易,那为什么大家还是把CSS写的那么烂呢?
    vue2.0项目实战(4)生命周期和钩子函数详解
    vue2.0项目实战(3)使用axios发送请求
    【css技能提升】完美的 Sticky Footer 布局
  • 原文地址:https://www.cnblogs.com/goooto/p/1080569.html
Copyright © 2011-2022 走看看