sql - 比较 2 个表并跟踪更改的列和其他设置为 null
问题描述
我有比较两张桌子的情况。一个是当前数据,另一个是以前数据的快照。比较的结果存储到 #temp 表(已更改的行)中。之后,我将 #temp 表与最后一个快照数据进行比较以跟踪更改的列。我需要为此我做了一个选择语句:
我正在考虑添加和 ROW_NUMBER() windows 函数,这可能会解决这个问题。有什么建议么?
解决方案
如果我理解正确,您可以使用row_number()
or outer apply
。后者将FROM
条款更改为:
FROM #tempUpdatedAddress l OUTER APPLY
(SELECT TOP (1) n.*
FROM UpdatedEntityStg n
WHERE n.[ADDRESSID] = n.[ADDRESSID]
ORDER BY n.snapshotdate DESC
) n
注意:您没有指定如何知道快照的顺序,所以我发明snapshotdate
了ORDER BY
. 使用包含订购信息的任何列。
推荐阅读
- windows - Kubernetes windows hyper-v pod中没有网络
- postgresql - 使用 Postgres 多个模式有多安全?
- java - JAVA - 使用字符串创建 HashMap
- css - 逐字打断,如果没有空格就打断
- spring-boot - Master Slave configuration for Spring Boot Microservices
- sqlite - Is it possible to use RoomDatabase to convert a cursor into an object?
- javascript - Access github html file using JavaScript
- coldfusion - 如何将查询中的 DateTime 转换为字符串以便在 Google 可视化图表中使用它?
- firebase - How to filter users by email from my test database with firebase registered users?
- java - 如何使用在方法内部的 Java 匿名函数中获得的数据