我有一个表,其中有一个varchar列'someid'
和一些时间戳列:
'date_1', ... , date_4
和'xdate_1', ... , xdate_4
我试图根据'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
,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;
答案 0 :(得分:11)
您忘记了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;
答案 1 :(得分: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;