0
这更像是理论问题而不是问题。假设我有一张有三列id, Country1, Country2
的表格。SQL表达式或GROUP BY子句中的列
我想运行简单的例子查询:
SELECT
CASE WHEN Country1 = '' THEN Country2 ELSE Country1 END AS [Country],
COUNT(id) AS [Countries_count]
FROM ExampleTable
GROUP BY
CASE WHEN Country1 = '' THEN Country2 ELSE Country1 END
查询将工作无论我会把整个非聚集表达式
GROUP BY
CASE WHEN Country1 = '' THEN Country2 ELSE Country1 END
或仅列,其在此表达
GROUP BY
Country1,
Country2
在GROUP BY
条款中。
我是否应该将GROUP BY
子句中的每个非聚集表达式(有时真的很庞大)或我只能从这些表达式中放置列?如果我能/不能,为什么?
哪个dbms? (不完全符合ANSI/ISO标准。)列employment_date的数据类型? (由于您检查了employment_date =''...) – jarlh
在** SQL Server **中,每个非聚合列**必须在** GROUP BY列列表中。其他RDBMS可能允许不同的方法。 –
那么,好点 - 日期的例子并不是最好的选择。我改变它以避免数据类型offtopic ;-) – Iver