比较 SQL 服务器中的非连续子字符串

compare non consecutive substrings in SQL server

我有两个逗号分隔的字符串:

有什么方法可以找到值的交集,即 string1 中与 string2 中的子字符串匹配的任何子字符串?

我尝试根据逗号拆分字符串,发现左侧的任何字符串与右侧字符串的子字符串匹配,然后为真,否则为假。

您可以这样做:

SELECT s1.value
FROM STRING_SPLIT('abc,cde,efg', ',') AS s1
CROSS JOIN STRING_SPLIT('abc,efg', ',') AS s2
WHERE s1.value = s2.value

-- returns ('abc') and ('efg')