2014-08-28 82 views
2

我有一個表,其中有一個VARCHAR列​​和一些時間戳列: 'date_1', ... , date_4'xdate_1', ... , xdate_4 我想選擇其中兩個依賴於「someid的價值,但直到現在還沒有運氣。我相信這是語法,Google搜索也沒有幫助,因爲所有的例子都與我的查詢類似。如何使用的情況下在DB2列中選擇查詢

繼承人是我想要做的事:

select 
    case 
    when someid = 1 then date_1 
    when someid = 2 then date_2 
    when someid = 3 then date_3 
    when someid = 4 then date_4 
,case 
    when someid = 1 then xdate_1 
    when someid = 2 then xdate_2 
    when someid = 3 then xdate_3 
    when someid = 4 then xdate_4 
from mytable; 

回答

10

你忘了end

select 
    case 
    when someid = 1 then date_1 
    when someid = 2 then date_2 
    when someid = 3 then date_3 
    when someid = 4 then date_4 
    end as col1 
,case 
    when someid = 1 then xdate_1 
    when someid = 2 then xdate_2 
    when someid = 3 then xdate_3 
    when someid = 4 then xdate_4 
    end as col2 
from mytable; 
+0

那麼,這是一個快速的答案,它完美的工作,謝謝! – JulioBordeaux 2014-08-28 10:33:40

0

作爲一個說明,如果someid是一個字符列,那麼你應該使用字符比較:

select (case when someid = '1' then date_1 
      when someid = '2' then date_2 
      when someid = '3' then date_3 
      when someid = '4' then date_4 
     end), 
     . . . 
from mytable; 
相關問題