web-dev-qa-db-ja.com

DB2列選択クエリでのケースの使用方法

Varchar列があるテーブルがあります'someid'といくつかのタイムスタンプ列:'date_1', ... , date_4および'xdate_1', ... , xdate_4「someid」の値に応じて2つを選択しようとしていますが、今まで運がありませんでした。これは構文であると確信しています。すべての例が私のクエリに似ていたので、グーグルも役に立ちませんでした。

これが私がやろうとしていることです:

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;
5
JulioBordeaux

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;
11
juergen d

注意として、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;
0
Gordon Linoff