Hive条件逻辑if或case

时间:2018-03-14 17:15:28

标签: sql hive

我有以下条件语句我试图转换为hive

if [my_time] > [your_time] then [my_time]
elseif isNull ([your_time])
then [my_time]
else null()
endif

此外,my_time和your_time采用时间戳格式。我在hive中尝试了以下内容,但由于某些预期结果缺失,它似乎不正确

case when (my_time > your_time) then my_time
     when (your_time = Null) then my_time
end as overall_time

如何在上面的第二个陈述中修复我的逻辑。

1 个答案:

答案 0 :(得分:1)

NULL无法与(=)使用IS NULL代替= NULL进行比较。 你的逻辑等同于

case 
     when your_time IS NULL
     OR my_time > your_time 
     then my_time
end as overall_time