SQL-分割字符串,用指定的分隔符,用指定的字段名称,生成并行条件

将字符串分解为where条件,

例如:“11 22 33 44 ” 生成 title like '%11%' and title like '%22%' and title like '%33%' and title like '%44%'

使用下面的函数:

SELECT [dbo].[f_split_where] ('11  22  33 44',' ','title')

DECLARE @str NVARCHAR(2000)

SET @str= 'SELECT TOP 11 * FROM table WHERE '+ [dbo].[f_split_where] ('为什么 中',' ','title')

EXEC sp_executesql @str



/*

分割字符串,用指定的分隔符,用指定的字段名称,生成并行条件

*/

ALTER  function  [dbo].[f_split_where](@c  varchar(4000),@split  varchar(2),@fieldstr VARCHAR(10)) 

returns  varchar(2000)

as 

    begin 

DECLARE @str VARCHAR(2000)='';

DECLARE @val VARCHAR(50)='';

SET @c=@c+@split;

      while(charindex(@split,@c)<>0)

      begin 

  SET @val=SUBSTRING(@c,1,charindex(@split,@c)-1);

  IF @val=''

  BEGIN

  SET @c = stuff(@c,1,charindex(@split,@c),'');

      CONTINUE;

  END

          SET @str+=@fieldstr +' like ''%'+@val+'%''';

          SET @c = stuff(@c,1,charindex(@split,@c),'');

  IF @c<>''

  BEGIN

        SET @str+=' and ';

  END

      end

      return @str;

    end



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容