一尘不染

在两列之间选择最新日期

sql

如果我有一个表(除其他列外)有两个DATETIME列,我将如何从这两列中选择 最新 日期。

例子:

ID     Date1     Date2

1      1/1/2008   2/1/2008

2      2/1/2008   1/1/2008

3      1/10/2008  1/10/2008

如果我希望我的结果看起来像

ID     MostRecentDate

1      2/1/2008

2      2/1/2008

3      1/10/2008

有一个简单的方法可以使我明显地忽略吗?我知道我可以执行子查询和case语句,甚至可以在sql
server中编写一个函数来处理它,但是我脑子里已经有了一个内置的max-compare类型函数,我只是忘记了。


阅读 208

收藏
2021-03-17

共1个答案

一尘不染

CASE是恕我直言,您最好的选择:

SELECT ID,
       CASE WHEN Date1 > Date2 THEN Date1
            ELSE Date2
       END AS MostRecentDate
FROM Table

如果其中一列可为空,则只需将其括起来COALESCE

.. COALESCE(Date1, '1/1/1973') > COALESCE(Date2, '1/1/1973')
2021-03-17