2013-03-27 55 views
4

我想要做的事,如:如何有條件地選擇在Oracle查詢中的列

select (if lookup = 8 then 08 else lookup) lookup 
    , //more columns 
from lookup_table 
order by lookup 

不幸的是,甲骨文似乎並不喜歡這種語法,而我未能發現爲什麼或查找其他函數我應該使用。

基本上,如果查找值是8,我想得到08,否則我想要查找的值。我確信我只是在愚蠢。

回答

11

你想要一個case語句:

select (case when lookup = 8 then 8 else lookup end) as lookup 

如果lookup是一個字符串,你可能想:

select (case when lookup = '08' then '08' else lookup end) as lookup 

如果lookup是一個整數,你想將其轉換爲字符串,那麼:

select (case when lookup = 8 then to_char(lookup, '00') else to_char(lookup, '00') end) as lookup 

但是,這似乎是多餘的對我來說。