sql - 在 SQL Server 中删除带有联接的表

标签 sql sql-server duplicates multiple-tables deduplication

我是 DBA 方面的新手,我的任务是从几个表中删除重复项。我在 SQL Server 工作。它们都有一个名为 LAST_UPD 的字段来跟踪它们的最后更新。所有表都连接到 TABLE1,每个用户都由 TABLE1.ALIAS_KEY 标识。连接如下。我想知道如何清除所有重复的行并保留 Table2 中的最新条目。感谢您的帮助!

FROM dbo.Table1 T1
LEFT JOIN dbo.Table2 T2
    ON (T1.PARROW = T2.PARROW)

最佳答案

假设(我可能是不正确的)上次更新是唯一的,您可以这样做:

DELETE FROM dbo.Table2 T2 WHERE T2.LAST_UPD NOT IN
    (SELECT max(LAST_UPD) FROM dbo.Table2 T2 
        LEFT JOIN dbo.Table1 T1 ON (T1.PARROW = T2.PARROW)
        GROUP BY T1.ALIAS_KEY) 

关于sql - 在 SQL Server 中删除带有联接的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334076/

相关文章:

sql - 尝试将 NOT EXIST 转换为 COUNT

c# - 使用bindingsource c#将图片从图片框保存到数据库

python - Pandas - 取消堆叠重复项

R,有条件地删除重复的行

mysql - 比较数据库中的字符串

sql - 将 float 转换为 varchar 时 0 * - 1 = -0 奇怪的结果

sql - IF THEN 在存储过程中循环

SQL 搜索基于将关键字与多个列进行比较,但要避免转换错误

sql - 并行数据仓库(PDW)功能未启用

sql - 内连接创建重复列