如果我有一个表(除其他列外)有两个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类型函数,我只是忘记了。
CASE是恕我直言,您最好的选择:
SELECT ID, CASE WHEN Date1 > Date2 THEN Date1 ELSE Date2 END AS MostRecentDate FROM Table
如果其中一列可为空,则只需将其括起来COALESCE:
COALESCE
.. COALESCE(Date1, '1/1/1973') > COALESCE(Date2, '1/1/1973')