【发布时间】:2026-01-28 05:10:02
【问题描述】:
我觉得这应该是一个简单的 SELECT 查询,但不能让它工作。
本质上,在这个例子中,我想返回一个不同的 Order_ID 列表以及国家:
如果有一个国家与 Order_ID 关联,则返回该国家值
如果关联多个国家/地区,则返回默认值('Multiple')。
-
SELECT [Order_ID]
,CASE WHEN COUNT(DISTINCT [Country]) = 1 THEN [Country] ELSE 'Multiple' END as [Combined_Country]
FROM [Sales Data]
GROUP BY [Order_ID]
此时返回错误“列 'Sales Data.Country' 在选择列表中无效,因为它既不包含在聚合函数或 GROUP BY 子句中。”
但是,将 Country 添加到 GROUP BY 子句会导致为与订单关联的每个国家/地区返回多行,而不是默认值为“Multiple”的一行。
有什么帮助吗?
【问题讨论】:
标签: sql sql-server