STRING_SPLIT 来自数据库的值

时间:2021-06-29 10:00:10

标签: sql-server tsql

我正在尝试设置一个 SQL 查询,我想通过标签获取数据。问题是“Tags”列以逗号分隔格式存储数据,例如“tag1,tag2”。

代码示例:

SELECT * FROM News 
WHERE (SELECT value FROM STRING_SPLIT(Tags, ',')) 
IN (SELECT value FROM STRING_SPLIT('tag1,tag2,tag3', ','));

有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用将结果集连接在一起的子查询:

SELECT N.*
FROM News N
WHERE EXISTS (SELECT 1
              FROM STRING_SPLIT(N.Tags, ',') s1 JOIN
                   STRING_SPLIT('tag1,tag2,tag3', ',') s2
                   ON s1.value = s2.value
             );