美文网首页
SQL中in传入字符串处理方法

SQL中in传入字符串处理方法

作者: 肉肉要次肉 | 来源:发表于2018-11-05 15:01 被阅读12次

    这里说到的in方法,例如:

    //整型

    select  *  from Students  where ID in ('111', '222', '333');

    或者

    //字符串

    select  *  from Students  where Name in ('张三', '李四', '王五');

    在存储过程中,如遇整型参数传入用in接收方式如下:

    declare  @sql varchar(1000)

    set @sql =  'select  *  from Students  where  1=1 '

    set @sql = @sql + ' and ID in ('+ @整型参数+')'

    在存储过程中,如遇字符串类型的参数传入用in接收方式如下:

    declare  @sql varchar(1000)

    declare @strLen int

    declare @next int

    declare @where varchar(1000)

    set @sql =  'select  *  from Students  where  1=1 '

    if(@userId<> '')

        begin

             set @strLen= dbo.Get_StrArrayLength(@userId,',')

             set @next=1

             set @where=''

    if(@strLen > 0)  begin

       set @sql=@sql+' AND (UserID IN ('

       while @next<=@strLen begin

       set @where=@where+ ','''+dbo.Get_StrArrayStrOfIndex(@userId,',',@next)+''''

       set @next=@next+1

    end

    if(LEN(@where) > 3)  begin

       set @where= SUBSTRING(@where, 2, LEN(@where))

    end

    set @sql=@sql + @where +'))'

    end

    end

    注意:以上dbo.Get_StrArrayLength(@userId,',')  和dbo.Get_StrArrayStrOfIndex(@userId,',',@next)是两个函数,分别是获取in中参数遇到逗号则拆分,获取in中参数下标

    函数1 函数2

    相关文章

      网友评论

          本文标题:SQL中in传入字符串处理方法

          本文链接:https://www.haomeiwen.com/subject/gqjsxqtx.html