当SQL查询中的日期为空时,如何拉出最大日期

时间:2018-07-02 19:50:25

标签: sql sql-server datetime isnull

我正在处理一个SQL查询,以获取重复课程的最小开始日期和最大结束日期。数据库的建立方式,如果这些类不继续,则它们具有结束日期;如果这些类正在继续,则结束日期为null。该字段为数据类型datetime。

如果结束日期为null(实际上是我想要的日期),因为它是最大的结束日期,但是我似乎无法弄清楚如何使该日期生效?我得到该字段中最后的实际日期是什么,并且无法获得返回null或更佳但仍为我设置的默认日期的查询。

预先感谢

1 个答案:

答案 0 :(得分:2)

如果希望将null日期作为最大值,则可以使用case表达式:

select (case when count(*) = count(enddate) then max(enddate) end)

count(*) = count(enddate)基本上说enddate的值都不是NULL

如果您喜欢玩功能,还可以使用:

select nullif(max(coalesce(enddate, '9999-01-01')), '9999-01-01')

但是我更喜欢第一种方法。