zoukankan      html  css  js  c++  java
  • SQL小技巧一拼音首字母的模糊查询

    创建函数,把中文字段翻译成拼音缩写,例如“你好”翻译成“NH”

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE FUNCTION   [dbo].[fun_GetPy](@str   NVARCHAR(4000)) 
    RETURNS   NVARCHAR(4000) 
    AS 
    BEGIN 
    DECLARE   @strlen   INT,@re   NVARCHAR(4000) 
    DECLARE   @t   TABLE(chr   NCHAR(1)   COLLATE   Chinese_PRC_CI_AS,letter   NCHAR(1)) 
    INSERT   INTO   @t(chr,letter) 
        SELECT   '', 'A '   UNION   ALL   SELECT   '', 'B '   UNION   ALL 
        SELECT   '', 'C '   UNION   ALL   SELECT   '', 'D '   UNION   ALL 
        SELECT   '', 'E '   UNION   ALL   SELECT   '', 'F '   UNION   ALL 
        SELECT   '', 'G '   UNION   ALL   SELECT   '', 'H '   UNION   ALL 
        SELECT   '', 'J '   UNION   ALL   SELECT   '', 'K '   UNION   ALL 
        SELECT   '', 'L '   UNION   ALL   SELECT   '', 'M '   UNION   ALL 
        SELECT   '', 'N '   UNION   ALL   SELECT   '', 'O '   UNION   ALL 
        SELECT   '', 'P '   UNION   ALL   SELECT   '', 'Q '   UNION   ALL 
        SELECT   '', 'R '   UNION   ALL   SELECT   '', 'S '   UNION   ALL 
        SELECT   '', 'T '   UNION   ALL   SELECT   '', 'W '   UNION   ALL 
        SELECT   '', 'X '   UNION   ALL   SELECT   '', 'Y '   UNION   ALL 
        SELECT   '', 'Z ' 
        SELECT   @strlen=LEN(@str),@re= ' ' 
        WHILE   @strlen> 0 
        BEGIN 
            SELECT   TOP   1   @re=letter+@re,@strlen=@strlen-1 
                FROM   @t   a   WHERE   chr <=SUBSTRING(@str,@strlen,1) 
                ORDER   BY   chr   DESC 
            IF   @@rowcount=0 
                SELECT   @re=SUBSTRING(@str,@strlen,1)+@re,@strlen=@strlen-1 
        END 
        RETURN(@re) 
    END
    GO

    执行函数如下图:

  • 相关阅读:
    zabbix监控
    ipv4固定ip地址
    CentOS7 内核优化 修改参数
    流媒体服务器 red5
    linux安装git
    zabbix-钉钉报警媒介
    Windows下利用IIS建立网站并实现局域网共享
    docker的简单操作和端口映射
    docker概述和安装及基本操作
    VMware Workstation创建Windows2012server虚拟机
  • 原文地址:https://www.cnblogs.com/sky6699/p/13970552.html
Copyright © 2011-2022 走看看