我正在使用 SQL 查询来获取重复类(class)的最小开始日期和最大结束日期。数据库的设置方式是,如果类(class)不继续,则有一个结束日期,如果类(class)继续,则结束日期为空。该字段是数据类型日期时间。
如果结束日期为空,这基本上就是我想要的日期,因为它是最大结束日期,但我似乎无法弄清楚如何让它发挥作用?我得到该字段中的最后一个实际日期是什么,并且无法让查询返回 null 或更好的值,但我设置的默认日期。
提前致谢
最佳答案
如果您希望将 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')
但我更喜欢第一种方法。
关于sql - SQL查询中日期为空时如何提取最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51142883/