gpt4 book ai didi

sql-server-2008 - 在日期上对 null = null 进行连接

转载 作者:行者123 更新时间:2023-12-04 07:00:12 24 4
gpt4 key购买 nike

我想在日期字段上加入两个表

INNER JOIN ##MetricBase
ON A.MetricID = ##MetricBase.MetricID
AND A.ImportDate = ##MetricBase.ImportDate

如果日期为空,我还希望数据匹配。

有没有比这更清洁的方法
 INNER JOIN ##MetricBase
ON A.MetricID = ##MetricBase.MetricID
AND (A.ImportDate = ##MetricBase.ImportDate OR
A.ImportDate IS NULL AND ##MetricBase.ImportDate IS NULL)

附录

一些评论建议我避免空日期。此查询是分组集的一部分
 GROUP BY GROUPING SETS(
(BossID, ID, ImportDate),
(BossID, ImportDate),
(BossID),
(BossID, ID),
(ImportDate),
()
)

空值将成为数据集的一部分

最佳答案

有一个 MS Connect Request目前支持IS DISTINCT FROM ,这是正确的 ISO 方式。缺乏支撑目前是颈部疼痛,而您已经这样做的方式实际上在技术上是正确的。

有人确实想出了一个clever workaround但并非适用于所有场景。在你的情况下,我相信它会写成:

INNER JOIN ##MetricBase
ON A.MetricID = ##MetricBase.MetricID
AND EXISTS(SELECT A.ImportDate INTERSECT SELECT ##MetricBase.ImportDate)

据说,最近版本的 SQL Server 非常擅长优化这一点。

关于sql-server-2008 - 在日期上对 null = null 进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19472390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com