使用表達式別名我有以下查詢,任何方式給予在CASE語句
SELECT CASE
WHEN floor(months_between(CAL_DATE, BIRTH_DATE)/12) BETWEEN 0
AND 20
THEN '1'
WHEN floor(months_between(CAL_DATE, BIRTH_DATE)/12) BETWEEN 21
AND 30
THEN '2'
WHEN floor(months_between(CAL_DATE, BIRTH_DATE)/12) BETWEEN 31
AND 40
THEN '3'
WHEN floor(months_between(CAL_DATE, BIRTH_DATE)/12) BETWEEN 41
AND 50
THEN '4'
ELSE '5'
END) Age_Band
FROM dual
有沒有什麼辦法讓別名來表達floor(months_between(CAL_DATE, BIRTH_DATE)/12)
,並用它在case語句像下面。
CASE floor(months_between(CAL_DATE, BIRTH_DATE)/12) **age**
WHEN **age** BETWEEN 0 AND 20 THEN '1'
可能不是。首先,該公式決不會產生結果0,當「年齡」介於0和20之間時,結果爲0。另一方面,頻帶甚至不是寬度 - 第一個爲20年,其餘爲10年。 – mathguy
ahhh是的,你說得對。這種方法可行,但表達方式必須要複雜得多。 –