gpt4 book ai didi

sql-server - 如何比较两个逗号分隔的字符串,如果至少有 1 个匹配项,则返回 TRUE

转载 作者:行者123 更新时间:2023-12-03 11:24:40 24 4
gpt4 key购买 nike

我必须使用包含逗号分隔字符串的变量:

@v1 = 'hello, world, one, two'
@v2 = 'jump, down, yes, one'

如果至少有一个匹配项,我需要一个返回 TRUE 的函数。所以在上面的例子中,它会返回 TRUE,因为值 'one' 在两个字符串中。

这在 SQL 中可能吗?

最佳答案

使用拆分函数( many examples here - 在 SQL Server 2016 之前的大多数情况下,CLR 将是您的最佳选择 - 现在您应该使用 STRING_SPLIT() )。
一旦有了拆分功能,剩下的就很简单了。该模型将是这样的:

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;
你甚至可以减少它只调用一次函数:
SELECT CASE WHEN EXISTS 
(
SELECT 1 FROM dbo.Split(@v1)
WHERE ', ' + LTRIM(@v2) + ','
LIKE '%, ' + LTRIM(Item) + ',%'
) THEN 1 ELSE 0 END;
在 2016+ 上:
SELECT CASE WHEN EXISTS 
(
SELECT 1 FROM STRING_SPLIT(@v1, ',')
WHERE ', ' + LTRIM(@v2) + ','
LIKE '%, ' + LTRIM([Value]) + ',%'
) THEN 1 ELSE 0 END;

关于sql-server - 如何比较两个逗号分隔的字符串,如果至少有 1 个匹配项,则返回 TRUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15280956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com