[英]How to use declare inside case?
我想将多个结果与COALESCE
合并在一行中。 但是我在CASE
使用变量时遇到问题:
DECLARE @combinedString VARCHAR(MAX);
SELECT
CASE
WHEN parent.Id = child.Id THEN
(SET @combinedString = COALESCE(@combinedString + ', ', '') + Name
FROM dbo.MyChildTable WHERE Id IN (1, 2, 3, 5)
SELECT @combinedString as RowName)
END
FROM dbo.MyParentTable parent
JOIN dbo.MyChildTable child ON child.Id= parent.Id
错误:
消息156,第15级,状态1,第6行
关键字“ SET”附近的语法不正确。消息156,第15级,状态1,第6行
关键字“ FROM”附近的语法不正确。
有什么事吗
像这样:
DECLARE @combinedString VARCHAR(MAX);
SELECT
CASE
WHEN parent.Id = child.Id THEN
SELECT @combinedString = COALESCE(@combinedString + ', ', '') + Name
FROM dbo.MyChildTable WHERE Id IN (1, 2, 3, 5);
SELECT @combinedString as RowName
END
FROM dbo.MyParentTable parent
JOIN dbo.MyChildTable child ON child.Id= parent.Id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.