我必须包含以逗号分隔的字符串的变量:
@v1 = 'hello, world, one, two'
@v2 = 'jump, down, yes, one'
Run Code Online (Sandbox Code Playgroud)
如果至少有一个匹配,我需要一个返回TRUE的函数.所以在上面的例子中,它将返回TRUE,因为值'one'在两个字符串中.
这在SQL中可行吗?
Aar*_*and 10
使用拆分功能(这里有很多例子 - 在大多数情况下,CLR将是您的最佳选择).
一旦你有一个分割功能,其余的很容易.该模型将是这样的:
DECLARE @v1 VARCHAR(MAX) = 'hello, world, one, two',
@v2 VARCHAR(MAX) = 'jump, down, yes, one';
SELECT CASE WHEN EXISTS
(
SELECT 1
FROM dbo.Split(@v1) AS a
INNER JOIN dbo.Split(@v2) AS b
ON a.Item = b.Item
)
THEN 1 ELSE 0 END;
Run Code Online (Sandbox Code Playgroud)
你甚至可以减少它只调用一次函数:
SELECT CASE WHEN EXISTS
(
SELECT 1 FROM dbo.Split(@v1)
WHERE ', ' + LTRIM(@v2) + ','
LIKE '%, ' + LTRIM(Item) + ',%'
) THEN 1 ELSE 0 END;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9069 次 |
| 最近记录: |