如果我有一个表(在其他列中)有两个DATETIME列,我将如何从这两列中 Select most recent个日期.

示例:

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 :

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')

Database相关问答推荐

将数据集上传到 Hub 时停止运行时会导致什么?

数据库设计:文件路径的首选字段长度

管理数据库中的产品计数

502 是数据库错误的适当状态代码吗?

JOIN 三张表

mysql搜索表名的段

在 postgresql 中将列从字符串更改为字符串数组

如何在 SQL Server 中生成随机数据?

sql server:在必要时在外键上创建索引

如何将 MySQL Workbench 连接到 Amazon RDS?

NoSql DB 和 OO Db 有什么区别?

如何更改 SQLite 数据库列中的值?

:force => true 在模式文件中是什么意思

如何在大型数据库中使用 typeahead.js

从 Java 创建 MySQL 数据库

C++ SQL 数据库库比较

如何使用反射调用扫描可变参数函数

Windows phone 7 的本地 Sql 数据库支持

使用命令行在 Mysql 中导入压缩文件

做或不做:将图像存储在数据库中