【发布时间】:2014-07-08 12:05:07
【问题描述】:
我有一个 COALESCE 语句从表中提取数据:
DECLARE @Output NVARCHAR(MAX)
SELECT @Output = COALESCE(@Output + ', ', '') + '''' + tCCGroup + ''''
FROM tblActivityPerPPCC_Matrix
WHERE tPPCC = 'NSEA0101'
SELECT @Output OUTPUT
具有以下输出。
'FADT', 'FD10RB', 'WA600'
我想将此输出字符串(现在位于变量@Output 中)插入到以下语句中:
SELECT * FROM XYZ
WHERE Column_Name IN (<< THE OUTPUT FROM COALESCE >>)
类似于
SELECT * FROM XYZ
WHERE Column_Name IN ('FADT', 'FD10RB', 'WA600')
这条语句会变成Cursor中的动态语句
任何帮助将不胜感激。
皮埃尔
【问题讨论】:
-
你可以使用这个答案:stackoverflow.com/questions/24540337/…
-
SELECT * FROM XYZ WHERE Column_Name IN (SELECT tCCGroup FROM tblActivityPerPPCC_Matrix WHERE tPPCC = 'NSEA0101')
-
我添加了 SQL Server 标记,因为它看起来像那种语法
-
为什么要将表中的一组行转换为逗号分隔的字符串,而不是仅使用表中的行?奇怪的
-
所以,你有一个(可能被破坏的)例程,它接受 多个 值并将它们塞进一个字符串中,然后你想取那个字符串并且(当它转out) 将其拆分回单独的值。
标签: sql sql-server coalesce