在 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() 等)來計算每組的匯總值。