zoukankan      html  css  js  c++  java
  • 巧用函数,使Sql中in的用法更多变

    在Sql中我们经常会用到in

    普遍的写法为

     where xx in ('1','2','3')

    通过函数写法为:

    IF EXISTS ( SELECT *
    FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[ArrayToTable]') 
    AND type IN ( N'FN', N'IF', N'TF', N'FS', N'FT' ) ) 
    DROP FUNCTION [dbo].[ArrayToTable]
    GO
    
    create function ArrayToTable(@arrayList varchar(2000),@split varchar(2))
    returns @result table(subscript int,value char(200))
    as
     begin
     declare @i int,
     @index int
     set @i = 0
     set @index = charindex(@split,@arrayList)
     while(@index <> 0)
     begin
     insert into @result(subscript,value)
     values(@i,substring(@arrayList,1,@index-1))
     set @arrayList = stuff(@arrayList,1,@index,'')
     set @index = charindex(@split,@arrayList)
     set @i = @i+1
     end
     insert into @result(subscript,value)
     values(@i,@arrayList)
     return
     end


    declare @lineData varchar(200)
    set @lineData='1,2,3,4'

    where (@lineData is null or XX in (select value from dbo.ArrayToTable(@lineData,',')))

    作者:Joe.Fan
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    关于Manjaro+kde桌面Tim闪退的解决
    Manjaro-kde-18.1.3安装体验
    Ubuntu19.10安装
    OPPO R11刷机初体验
    Microsoft store应用商店打不开0x80131500
    提问回顾与个人总结
    OO第三单元总结
    OO第二单元总结
    软工案例分析作业
    OO第一单元总结
  • 原文地址:https://www.cnblogs.com/fanxingthink/p/4176154.html
Copyright © 2011-2022 走看看