【发布时间】:2013-07-15 11:26:15
【问题描述】:
我正在尝试编写一个函数来比较 SQL 中的逗号分隔值 我从网上获取了一些代码:
SELECT CASE WHEN EXISTS
(
SELECT 1 FROM dbo.Split(@v1)
WHERE ', ' + LTRIM(@v2) + ','
LIKE '%, ' + LTRIM(Item) + ',%'
) THEN 1 ELSE 0 END;
然后我做一个函数:
CREATE FUNCTION [dbo].[fnCompareCSVString]
(
@str1 nvarchar(50),
@str2 nvarchar(50)
)
RETURNS int
AS
BEGIN
SELECT CASE WHEN EXISTS
(
SELECT 1 FROM dbo.Split(@str1)
WHERE ', ' + LTRIM(@str2) + ','
LIKE '%, ' + LTRIM(Item) + ',%'
) THEN 1 ELSE 0 END;
END
我不擅长 SQL 我知道这是错误的
问题:
我想写一个比较逗号分隔值的函数,比较后将取两个值(逗号分隔值),返回值为真或假
我必须在这个 SQL 函数中做哪些更改?
【问题讨论】:
-
看看你能不能说出一个明确的问题。一些示例输入和输出有助于澄清您的查询。我知道许多 SO 退伍军人会询问“您尝试过什么”,但这些信息实际上并没有用,所以如果您觉得有必要,请在最后列出。
-
如果你不太了解 SQL,你应该改变你的数据结构,以便以一种更兼容 SQL 的方式存储字符串(即字符串中每个值一行,多行表示一个字符串)。嗯,即使你很了解 SQL,那也会很有用。
-
您想要两个 CSV 列表之间的差异或匹配列表吗?
-
嗨 Kane ...我想在两个 CSV 之间进行匹配,如果任何一个匹配,则返回 true,否则返回 false
标签: sql sql-server sql-server-2008 csv