首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找db2中两列之间的最大可空日期

查找db2中两列之间的最大可空日期
EN

Stack Overflow用户
提问于 2016-09-02 15:18:19
回答 2查看 598关注 0票数 0

我在Db2中有一个名为myTable的表。

它有几列:

代码语言:javascript
复制
a |  b    | date1        |  date2
---------------------------------------------
1    abc     <null>        2014-09-02
2    aax     2015-12-30    2016-09-02
2    bax     2015-10-20    <null>
2    ayx     2014-12-10    2016-02-12

从上面的值可以看出,date1date2也可以有null值。

如何同时获得date1date2的最大值?

即,查询的输出应为2016-09-02,因为这是date1date2中存在的所有日期的最大日期。

我使用的是Db2-9。

感谢您的阅读!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-02 15:20:00

使用UNION查询如何:

代码语言:javascript
复制
SELECT MAX(t.newDate)
FROM
(
    SELECT date1 AS newDate
    FROM myTable
    UNION
    SELECT date2 AS newDate
    FROM myTable
) t

另一种选择:

代码语言:javascript
复制
SELECT CASE WHEN t.date1 > t.date2 THEN t.date1 ELSE t.date2 END
FROM
(
    SELECT (SELECT MAX(date1) FROM myTable) AS date1,
           (SELECT MAX(date2) FROM myTable) AS date2
    FROM SYSIBM.SYSDUMMY1
) t
票数 1
EN

Stack Overflow用户

发布于 2016-09-02 20:39:21

MAX()是一个有趣的野兽..。

它既可以作为标量函数,也可以作为聚合函数。

所以你真正需要的就是

代码语言:javascript
复制
select max(max(coalesce(date1,'0001-01-01')
              ,coalesce(date2,'0001-01-01') 
              )
          )
from mytable

外部的MAX()是聚合版本,内部的是标量版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39286474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档