SQL在查询中使用逗号分隔的字符串

Fai*_*sal -2 sql sql-server stored-procedures

我正在使用存储过程,并用逗号将其传递给字符串,如下所示:

Apple,Banana,Orange
Run Code Online (Sandbox Code Playgroud)

我想在IN子句中使用此字符串,但是我不想使用

SELECT value 
FROM STRING_SPLIT(@MyStr, ',')
Run Code Online (Sandbox Code Playgroud)

我如何生成可以使用的字符串

SELECT * 
FROM MyTable 
WHERE Fruit IN (@MyStr)
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

只需使用子查询:

select *
from mytable
where fruit in (select value from STRING_SPLIT(@MyStr, ','));
Run Code Online (Sandbox Code Playgroud)

在旧版本的SQL Server中,可以使用like

select *
from mytable
where ',' + @MyStr + ',' like '%,' + fruit + ',%';
Run Code Online (Sandbox Code Playgroud)