【发布时间】:2022-02-08 04:52:39
【问题描述】:
我正在使用 SQL Server Management Studio 2017,我有一个 SELECT 语句,我在子查询中使用 STRING_AGG 函数,例如:
SELECT
[p].[test],
[p].[test],
....
(SELECT [Customers]
FROM
(SELECT
STRING_AGG([C].[Name] , ', ') AS [Customers]
FROM
[Project] AS [P]
RIGHT JOIN
[ProjectCustomer] AS [PC] ON [P].[ProjectKey] = [PC].[ProjectKey]
INNER JOIN
[Customer] AS [C] ON [PC].[CustomerKey] = [C].[CustomerKey]
GROUP BY
[P].[Name]) AS [t])
FROM
...
问题是当我执行它时,我得到了这个异常:
子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
但是,如果我将子查询作为单独的选择运行,它会运行并且只返回一个字符串值。有人可以解释一下我在那里做错了什么吗?问候
【问题讨论】:
-
错误信息的哪一部分不清楚?您的子查询返回不止一行。调试是程序员工作的一部分。您是否尝试过运行内部查询并查看返回了多少行?
标签: sql sql-server tsql