小编典典

CSV字符串中每个变量的SQL搜索列

sql

我有一个变量传递给存储过程Ex:

@keywords = 'val1, val3, val5'

我正在尝试查看名为Title的列是否包含其中的任何一个

Ex: Title1 - 'Hello val1'
    Title2 - 'Hello val3'   
    Title3 - 'Hello val1, val3'  
    Title4 - 'Hello'

所以我的结果应该返回值

Title
------
Hello val1
Hello val3
Hello val1, val3

是否可以使用LIKE或其他任何功能/方法?


阅读 163

收藏
2021-04-15

共1个答案

小编典典

您需要将CSV拆分为行(有关各种可变方法,请参见SQL Server 2005及更高版本中的数组和列表)。我假设您dbo.ufnSplitRows基于此创建

然后使用LIKE加入

SELECT *
FROM
    MYtable M
    JOIN
    dbo.ufnSplitRows (@CSV) C ON M.Title LIKE '%' + C.SplitValue + '%'

顺便说一句,由于至少领先的“%”,它将运行不佳

2021-04-15