zoukankan      html  css  js  c++  java
  • SqlServer 存储IN处理,逗号连接

    1.多条数据使用逗号隔开

    select invoiceApplyNo,stuff((select distinct ','+incomePlanNo from T1 where a.invoiceApplyNo=invoiceApplyNo for xml path('')),1,1,'') AS items
    from T1 a group by invoiceApplyNo

    2.批量更新多条语句

    方法一

    update a set HIGH=b.NEW  from SPEC1 a,tmpDOT  b 
    where a.high=b.old

    方法二

    UPDATE A
    SET HIGH=B.NEW
    FROM A LEFT JOIN B ON (A.HIGH=B.OLD)

    方法三

    update  a
      set high  = (select new from tmpdot where old=a.high  )
       from spec1 a

    3.存储IN查询处理:

    -- =============================================
    -- 名称:字符串分隔成表
    -- 维护:ifu25
    -- 日期:2018/08/14
    -- 说明:用于将类似'1,2,3,4,5,6'的字符串分解成多行,以便于在存储过程中使用 where id in(select * from StrSplitToTable(@Strs,',') )
    -- =============================================
    CREATE function func_StrSplitToTable
    (
      @Strs varchar(max),   --需要被分隔的字符串
      @Split varchar(50)    --分隔符
    )
    returns @Temp table (id varchar(50) null)
    as
    
    begin
      while (charindex(@Split, @Strs)<>0)
      begin
        insert @Temp(id) values (substring(@Strs, 1, charindex(@Split, @Strs)-1))
        set @Strs=stuff(@Strs, 1, charindex(@Split, @Strs), '')
      end
      insert @Temp(id) values (@Strs)
      return
    end

    调用示例:

    SELECT * FROM table_temp id in (SELECT * FROM func_StrSplitToTable(@idStr,','));

    方法2:

    -- a.feeguid:是要查询的表字段。feeguidstr传过来的值
    select * from a where charindex(','+ltrim(a.feeguid)+',',','+@feeguidstr+',')>0 

    3.使用IN参数化

     public JsonResult Delete(string oidStr)
            {
                string[] oidArr=null;
                if (!string.IsNullOrEmpty (oidStr)) {
                    oidArr = oidStr.Split(',');
                }
                try
                {
                    string sqlStr = "DELETE FROM TABLE WHERE CAST(id as varchar(36)) IN @id";
                    //执行 param=new{id=oidArr}
                }
                catch (Exception)
                {
                    return new JsonResult(new { Result ="Error"});
                }
                return new JsonResult(new { Result ="OK"});
            }

      

    4.

    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    数学 之 hdu 4722
    DP + math 之 Codeforces 126D
    计算几何 之 hdu 1077 poj 1981 O(n^2logn)
    计算几何 之 hdu 1077 poj 1981 O(n^3)
    字典树 之 hdu 1800
    字典树 之 poj 1056
    字典树 之 hdu 4099
    字典树 之 hdu 1247
    解决java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
    显示Mac壁纸所在路径以及接下来的事情你懂得
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/11944667.html
Copyright © 2011-2022 走看看