如何从两列中获取最大日期,如果其中一列为空,则为 null



>我在MySQL表中有两个日期列,表示由两个用户处理的任务。 日期列记录用户 1 同意任务的时间以及用户 2 同意任务的时间,如果该用户尚未同意任务,则可以NULL日期列。

我想生成任务同意的日期 - 除非两个用户都同意该任务,否则该日期应为 NULL,或者如果他们都同意,则为两个日期中的最大值。

所以我想要一个产生以下内容的查询:

user_1_agreed  user_2_agreed  query_result
NULL           NULL           NULL
2014-01-02     NULL           NULL
NULL           2014-03-04     NULL
2014-01-02     2014-03-04     2014-03-04

我知道MAXCOALESCEIF,但我在尝试如何组合它们以提供上述内容时遇到了麻烦。

greatest 函数完全符合您的要求:

SELECT GREATEST(user_1_agreed, user_2_agreed)
FROM   my_table

请尝试此操作,它应该为您提供所需的:)

select 
    case 
        when user_1_agreed is null then 'null'
        when user_2_agreed is null then 'null'
        when user_1_agreed  > user_2_agreed  then user_1_agreed  
        else user_2_agreed  
    end as finalvalues
from
    my_table

相关内容

最新更新