sql while循环检查条件包含字符串中的单词
我有一个while循环,需要从字符串检查循环条件。字符串是一组用逗号分隔的单词,例如:“abc、bcd、gfd” 我想检查字符串中是否包含特定单词。如果字符串中存在一个单词,那么我想进入循环并执行它。我尝试使用CHARINDEX,但它不提供全文搜索sql while循环检查条件包含字符串中的单词,sql,sql-server-2016,Sql,Sql Server 2016,我有一个while循环,需要从字符串检查循环条件。字符串是一组用逗号分隔的单词,例如:“abc、bcd、gfd” 我想检查字符串中是否包含特定单词。如果字符串中存在一个单词,那么我想进入循环并执行它。我尝试使用CHARINDEX,但它不提供全文搜索 DECLARE @string varchar(100) = 'abc, bcd, hbg' while(contains(@string ,'abc')) BEGIN /// END 在SQL server 2016及以上版本中:
DECLARE @string varchar(100) = 'abc, bcd, hbg'
while(contains(@string ,'abc'))
BEGIN
///
END
在SQL server 2016及以上版本中:
DECLARE @string varchar(200) = 'abc,bcd,hbg'
DECLARE @string1 varchar(200) = 'abc'
select value from string_split(@string,',')
where value=@string1;
在SQL server较低版本中,您需要创建函数以获得结果您是否尝试这样做
DECLARE @list varchar(8000)
DECLARE @pos INT
DECLARE @len INT
DECLARE @value varchar(8000)
SET @list = 'abc, bcd, hbg,abc,'
set @pos = 0
set @len = 0
WHILE CHARINDEX(',', @list, @pos+1) > 0
BEGIN
set @len = CHARINDEX(',', @list, @pos+1) - @pos
set @value = SUBSTRING(@list, @pos, @len)
IF(@value = 'abc')
BEGIN
PRINT @value
--DO YOUR MAGIC HERE
END
set @pos = CHARINDEX(',', @list, @pos+@len) +1
END
您使用的是哪种数据库管理系统?(该代码尝试是特定于产品的。)Microsoft SQL Server。。。代码仅用于显示一个示例
while(@string类似于“%abc%”)
??@huMpty duMpty我需要精确的单词搜索。。当使用“类似”时,即使“%ABCD%”也会考虑。但这不是必需的您使用了哪个sql版本?sql server 2016