遇到CASE WHEN語句的問題。示例腳本如下:SQL - CASE當遇到問題時
SELECT
CASE WHEN Column1 = "Example 1" THEN "Name 1"
WHEN Column1 = "Example 2" THEN "Name 2"
WHEN Column1 = "Example 3" THEN "Name 3"
WHEN Column1 = "Example 3" AND Column2 IN ("Sample1", "Sample2") THEN "Name4"
WHEN Column1 = "Example 3" AND Column2 IN ("Sample3", "Sample4") THEN "Name5"
ELSE "-" END AS Name,
[aggregation language that doesn't affect the script]
FROM Table1
GROUP BY Name
HAVING Name IN ("Name1", "Name2", "Name3", "Name4", "Name5"
ORDER BY Name ASC
我遇到的問題是執行腳本「名1」時,「名稱2」和「NAME3」所有拉力(和拉準確),但「NAME4」和「NAME5 「根本不會拉,大概是因爲他們與」Name3「(Column1 =」Example3「)共享一個條件。
本質上,我試圖拉動名爲「Name3」的聚合,它的組件是「Name4」和「Name5」。
想一想,其中一個方法是「Name3」是NFL,「Name4」和「Name5」分別是AFC和NFC。因爲我以條件{Column1 =「Example3」}拉入NFL,儘管有第二個必需的「AND」條件,但它不會拉入AFC和NFC。
如果有人可以在這裏幫助,會喜歡。我嘗試過使用括號,改變WHEN的順序......沒有運氣。
在此先感謝!
您能否提供一個期望的結果集是什麼樣子的樣本? – 2015-02-24 18:39:27