我有一个查询计算两个日期之间的分钟差异。我遇到的问题是查询需要根据经过的分钟数返回不同的结果。我想在不重新计算每个案例的会议记录的情况下这样做。如果可能的话,我想在一个简单的查询中这样做。
实施例。我想删除(d2-d1)* 1440并保存到变量中,以便在查询中再次使用它。
select a, b, c,
(case
when (d2-d1)*1440 < 10 then 'Less than 10'
when (d2-d1)*1440 < 500 then 'Less than 500'
else 'More than 500'
end
)
from my_table
答案 0 :(得分:0)
使用内联查询有助于获得所需的结果
select a, b, c,
(case
when ddiff < 10 then 'Less than 10'
when ddiff < 500 then 'Less than 500'
else 'More than 500'
end
)
from (select a,b,c, (d2-d1) * 1440 ddiff from my_table) X
答案 1 :(得分:0)
使用子查询。
select a, b, c,
(case
when min_diff < 10 then 'Less than 10'
when min_diff < 500 then 'Less than 500'
else 'More than 500'
end
)
from (
select a,b,c, (d2-d1)*1440 AS min_diff from my_table
)