我有一个 ID 相同但两行数据不同的记录 更新最终结果应该是数据中存在的该 ID 的最后一条记录。 例子
ID | Name | PermanentAddrss | CurrentLocation
1 | R1 | INDIA | USA
1 | R1 | INDIA | UK
现在 ID
1 将被加载到数据库中的记录
1|R1|INDIA|UK
如何在 SQL Server 中为多条记录完成此操作?
最佳答案
请理解,SQL Server 不会按照数据插入的顺序存储或获取数据,因此要查找最新/最后一条记录,您应该有某种方式对记录进行排序。
这通常是一个时间戳列,如 last_modified_date
。您当前的表是缓慢变化的维度类型 2 的主要候选对象;你应该考虑实现它。
参见 explanation 在 Kimball 的小组网站上。
如果您真的不受任何订单的影响,只需要为每个 ID 一行,您可以尝试以下查询。
select
ID,
Name,
PermanentAddress,
CurrentLocation
from
(select
*,
row_number() over(partition by id order by (select null)) r
from yourtable)t
where r=1
关于sql - 更新具有相同ID但行中不同数据的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47807600/