zoukankan      html  css  js  c++  java
  • SQL in(x,y,z)时自动补全单引号

    由于项目中经常会用到在查询SQL的时候用到 字段 in( xx ) 的情况,但是每次在组织SQL的时候都会 大量使用 "'"+ x + "'" 这样写代码无疑非常操蛋。

    所以我想到不如直接带入所有参数格式为 a,b,c 不用 ' 符号, 然后在SQL里面写一个函数将 a,b,c 分解为 'a','b','c' 或者分解为一个表也可以让in成立。

    一、a,b,c 组合为 'a','b','c'

      

    -----------------------------string
    DECLARE @INPUT NVARCHAR(200) 
    DECLARE @CHAR NVARCHAR(200) = ','
    DECLARE @RESULT NVARCHAR(200)  = ''
    DECLARE @INPUTLENGTH INT
    SET @INPUT = 'my,name,is,afei'
    SET @INPUTLENGTH = LEN(@INPUT)
    
    WHILE CHARINDEX(@CHAR,@INPUT) <> 0
    BEGIN 
        -- 截取一个到','的字符串x 并格式成 'x' 
        SELECT @RESULT += char(39)  + substring(@INPUT,1,CHARINDEX(@CHAR,@INPUT)-1)+ char(39)+ @CHAR
        -- 截取被截取后的字符串
        ,@INPUT = SUBSTRING(@INPUT,CHARINDEX(@CHAR,@INPUT,0)+LEN(@CHAR),LEN(@INPUT))
        
        -- 当最后截取的字符串为不包含隔断符号','时,直接加上单引号返回
        IF CHARINDEX(@CHAR,@INPUT) = 0
            SELECT @RESULT += char(39) + @INPUT+ char(39)
            RETURN @RESULT
    END    
    a,b,c 分

     二、a,b,c 分解为表

    -----------------------------table
    DECLARE @CHAR NVARCHAR(200) 
    DECLARE @INPUT NVARCHAR(200)
    DECLARE @List TABLE (item VARCHAR(8000))
    
    SET @CHAR = ','
    SET @INPUT = 'my,name,is,afei'
    
    BEGIN
        DECLARE @sItem VARCHAR(8000)
        WHILE CHARINDEX(@CHAR,@INPUT,0) <> 0 
        BEGIN 
            -- 截取一个到','的字符串
            SELECT  @sItem=SUBSTRING(@INPUT,1,CHARINDEX(@CHAR,@INPUT,0)-1),
            -- 截取被截取后的字符串
            @INPUT=SUBSTRING(@INPUT,CHARINDEX(@CHAR,@INPUT,0)+LEN(@CHAR),LEN(@INPUT))
            
            IF LEN(@sItem) > 0  
                INSERT INTO @List SELECT @sItem 
        END
        -- 添加最后一个字符串
        IF LEN(@INPUT) > 0 
            INSERT INTO @List SELECT @INPUT
        RETURN
    END
  • 相关阅读:
    SpringCloud教程五:Zuul(路由+过滤)
    ubuntu18.0.4 不能下载 libgd2-dev
    ubuntu18.04下安装中文输入法
    Ubuntu下tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
    Java面试题汇总(一)
    Redis常见面试题
    Docker是什么
    Django实现自动发布(1数据模型)
    数据随机分配的思考
    单链表反转
  • 原文地址:https://www.cnblogs.com/leeafei/p/6386241.html
Copyright © 2011-2022 走看看