>我在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
我知道MAX
,COALESCE
和IF
,但我在尝试如何组合它们以提供上述内容时遇到了麻烦。
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