我正在处理一个SQL查询,以获取重复课程的最小开始日期和最大结束日期。数据库的建立方式,如果这些类不继续,则它们具有结束日期;如果这些类正在继续,则结束日期为null。该字段为数据类型datetime。
如果结束日期为null(实际上是我想要的日期),因为它是最大的结束日期,但是我似乎无法弄清楚如何使该日期生效?我得到该字段中最后的实际日期是什么,并且无法获得返回null或更佳但仍为我设置的默认日期的查询。
预先感谢
答案 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')
但是我更喜欢第一种方法。