在 SQL 中,CASE WHEN
語句主要用于條件篩選,而不是數據分組。它允許你在查詢結果中根據特定條件返回不同的值。
例如,如果你有一個名為 sales
的表,其中包含 region
和 amount
列,你可以使用 CASE WHEN
語句來篩選出特定地區的銷售額:
SELECT region,
SUM(CASE WHEN region = 'North' THEN amount ELSE 0 END) AS North_Sales,
SUM(CASE WHEN region = 'South' THEN amount ELSE 0 END) AS South_Sales
FROM sales
GROUP BY region;
在這個例子中,我們使用了 CASE WHEN
語句來為每個地區分別計算銷售額。但是,請注意,我們在 GROUP BY
子句中指定了 region
列,以便按地區對結果進行分組。
如果你嘗試在 GROUP BY
子句中使用 CASE WHEN
表達式,SQL 數據庫可能會報錯,因為 GROUP BY
要求列名或常量表達式,而不是動態生成的值。
總之,雖然 CASE WHEN
可以用于篩選數據,但它不是用于數據分組的標準工具。對于數據分組,你應該使用 GROUP BY
子句,并結合聚合函數(如 SUM()
、COUNT()
等)來計算每組的匯總值。