最伟大的不是空列

Álv*_*lez 14 sql oracle oracle9i

我需要使用基于两个DATETIME列的最大值的公式更新行.我通常会这样做:

GREATEST(date_one, date_two)
Run Code Online (Sandbox Code Playgroud)

但是,两个列都允许为NULL.我需要最大的日期,即使另一个是NULL(当然,当两者都是NULL时我期望NULL)并且GREATEST()当其中一列为NULL时返回NULL.

这似乎有效:

GREATEST(COALESCE(date_one, date_two), COALESCE(date_two, date_one))
Run Code Online (Sandbox Code Playgroud)

但我想知道......我错过了一个更简单的方法吗?

Vad*_* K. 15

COALESCE(GREATEST(date_one, date_two), date_one, date_two)