【问题标题】:SQL Server - return most recent date of records including NULLs?SQL Server - 返回最近的记录日期,包括 NULLs?
【发布时间】:2017-06-12 04:52:16
【问题描述】:

我正在尝试返回最近的记录日期,并有这样的 INNER JOIN:

 INNER JOIN ( SELECT ID, MAX(RegDate) AS RegDate
 FROM   dbo.registrations
 GROUP BY ID
  ) RI ON app.ID= RI.ID
  AND dbo.registrations.RegDate= RI.RegDate

这很好用,它返回所有日期最高的记录并删除没有最高日期的记录。

但是,有些记录在 RegDate 中有 NULL 值。我怎样才能也返回这些记录?

如果我将联接设置为 LEFT OUTER JOIN,则返回所有日期而不是最高日期。

解决这个问题的最佳方法是什么?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    添加OR dbo.registrations.RegDate IS NULL条件

    INNER JOIN (SELECT ID,
                        Max(RegDate) AS RegDate
                FROM   dbo.registrations
                GROUP  BY ID) RI
            ON app.ID = RI.ID
                AND ( dbo.registrations.RegDate = RI.RegDate
                        OR dbo.registrations.RegDate IS NULL ) --Here
    

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 2013-08-25
      相关资源
      最近更新 更多