删除负值

时间:2016-09-26 12:49:43

标签: sql amazon-redshift

我有一个获取派生值的查询

select datediff(minute, date_field_1, date_field_2) as date_diff from table_name;

问题是结果中的某些值可能是负数,因为在某些情况下date_field_1可能会大于date_field_2

因此,这会导致结果为负值,以及结果表中的正值。

是否存在一些默认值或省略并在这些负计算值中给出null或0?

使用redshift。

2 个答案:

答案 0 :(得分:2)

捕获负值的一种方法是使用CASE WHEN。它会检查您的约会是否小于0。 我建议将0作为默认值:

SELECT 
    CASE WHEN datediff(minute, date_field_1, date_field_2) < 0 
    THEN 0 
    ELSE datediff(minute, date_field_1, date_field_2) END as date_diff
FROM table_name;

答案 1 :(得分:1)

这是你想要的吗?

select (case when date_field_1 >= date_field_2
             then datediff(minute, date_field_1, date_field_2)
             else 0
        end) as date_diff
from table_name;