ORACLE多欄位CASE WHEN

聽海★藍心夢發表於2011-09-23
case when可以根據條件重設某個欄位的返回值,但是一般情況下都是根據本欄位的值來返回需要的值,如:
 
select t.Name, 
(case t.id                     --此處可以省略括號,改變id為name 
when 1 then 'zhao' 
when 2 then 'qian' 
when 3 then 'sun' 
else 'li' 
end)                              --注意不要丟掉end關鍵字哦 
from T t;
 
但是如果根據多個欄位來限制返回值,case when一樣也是可以處理的:
 
SELECT
CASE
WHEN t.flag=1 AND t.date<=SYSDATE-2 THEN 1
ELSE 0
END as new_flag
FROM t;
這樣,凡是flag=1並且date為兩天之前的,就返回值1,否則返回0,該欄位為一個偽列欄位,可以起一個任意的別名,如new_flag。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-708176/,如需轉載,請註明出處,否則將追究法律責任。

相關文章