我需要根据两个DATETIME列的最大值来使用公式更新一行数据。通常我会这样做:
GREATEST(date_one, date_two)
然而,两列都可以为NULL。我需要在另一列为NULL时得到最大的日期(当两个都为NULL时,我期望得到NULL)。但是GREATEST()
在其中一列为NULL时返回NULL似乎不起作用。
这个解决方案似乎可行:
GREATEST(COALESCE(date_one, date_two), COALESCE(date_two, date_one))
但是我想知道... 我是否错过了更简单的方法?
COALESCE(GREATEST(date_one, date_two.. date_n), date_one, date_two, .. date_n)
- Sanjay Verman
列的概括并不完全正确。如果任何一个日期是NULL
,内部调用GREATEST(date_one, date_two, ... date_n)
将返回NULL
,这将导致外部的COALESCE(GREATEST(...), date_one, date_two, ... date_n)
返回第一个列出且不为NULL
的日期,而不一定是最大的日期。 - undefined