检查这些记录是否在从属表中后,sql server从表中删除重复记录

用户名

我有两个表如下

表_1
APP_MED_CHIP_ID APPLICATION_ID PERSON_ID
248340 1228144 1028940
248342 1228144 1028940

328526 1273218 818905
328527 1273218 1386405
328528 1273218 1386407

表_2
APP_MED_CHIP_DETAIL_ID APP_MED_CHIP_ID
92574 248342

在表1中,前2条记录是重复的,因为它们具有相同的application_id和person_id,因此我需要获取这2条记录中的APP_MED_CHIP_ID(248340,248342),检查它们是否存在于表2中,然后从表1中删除该记录,在表2中不存在。

我已使用以下查询选择所有重复项。

SELECT * FROM <br>
(SELECT ROW_NUMBER() OVER (PARTITION BY APPLICATION_ID,PERSON_ID ORDER BY APPLICATION_ID,PERSON_ID) as ROW,* 
FROM Table_1) as p<br>
where p.APP_MED_CHIP_ID not in<br> 
(select APP_MED_CHIP_ID from Table_2)<br>
and p.ROW > 1

我的查询问题是表_1中的第一组记录,我的结果集将不会显示第一组记录,因为我使用了条件p.ROW> 1,但是如果我不使用此条件,我将无法进行过滤重复项。

我只显示了两组记录作为示例,但是在table_1中还有许多其他记录。

请提供有关如何解决此问题的建议。

谢谢你。

麦克风

从表1中删除表2中不存在的记录

因此,我认为您想删除Table_1中不存在于Table_2中的“重复”行。仅当按APPLICATION_ID和PERSON_ID分组时,如果记录多于记录,则只想删除行。

您可能会执行以下操作:

Delete From Table_1
Where APP_MED_CHIP_ID Not In
(
    Select APP_MED_CHIP_ID From Table_2
)
And Exists
(
    Select 1 From Table_1 As T1
    Where Table_1.APPLICATION_ID = T1.APPLICATION_ID
       And Table_1.PERSON_ID = T1.PERSON_ID
    Having Count(*) > 1
)

当然,根本问题是Table_1中允许使用脏数据。如果你有过任何DDL控制,你可以把一个约束的Table_1,如FK其中Table_1.APP_MED_CHIP_ID引用Table_2.APP_MED_CHIP_ID或唯一约束Table_1列(APPLICATION_IDPERSON_ID)。如果您对DDL没有任何控制权,那么我对您有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查这些记录是否在从属表中后,sql server从表中删除重复记录

来自分类Dev

使用SQL删除表中的重复记录

来自分类Dev

Oracle SQL查询:从表中删除最旧的重复记录

来自分类Dev

从SQL Server 2012表中删除具有身份的重复记录

来自分类Dev

从 SQL Server 中的表中选择除了重复记录

来自分类Dev

使用分组依据从Mysql表中删除重复记录

来自分类Dev

需要查找并删除表中的重复记录

来自分类Dev

从 SQL Server 中的视图中删除重复记录

来自分类Dev

删除SQL中的重复记录

来自分类Dev

如何删除SQL中的重复记录?

来自分类Dev

更新除SQL Server表中重复记录之外的所有记录

来自分类Dev

更新SQL Server表中除重复记录之一以外的所有记录

来自分类Dev

如何从SQL Server删除重复记录?

来自分类Dev

合并SQL Server中的重复记录

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

删除 vCard 文件中的重复记录

来自分类Dev

Teradata bteq sql 删除表中带有 min(column) 的重复记录

来自分类Dev

删除重复记录

来自分类Dev

如何避免在表类型sql server中插入重复记录

来自分类Dev

如何从SQL Server中的表中删除重复的记录?

来自分类Dev

从没有主键的Postgresql表中删除重复记录?

来自分类Dev

如何在显示时从同一表中删除重复记录

来自分类Dev

删除mySql表中的第二个重复记录

来自分类Dev

SQL Server:如何允许在小表上重复记录

来自分类Dev

SQL Server:如何允许在小表上重复记录

来自分类Dev

如何防止书签表中Rails中的重复记录?

来自分类Dev

SQL中的重复记录

来自分类Dev

在PL / SQL中检查重复记录

Related 相关文章

  1. 1

    检查这些记录是否在从属表中后,sql server从表中删除重复记录

  2. 2

    使用SQL删除表中的重复记录

  3. 3

    Oracle SQL查询:从表中删除最旧的重复记录

  4. 4

    从SQL Server 2012表中删除具有身份的重复记录

  5. 5

    从 SQL Server 中的表中选择除了重复记录

  6. 6

    使用分组依据从Mysql表中删除重复记录

  7. 7

    需要查找并删除表中的重复记录

  8. 8

    从 SQL Server 中的视图中删除重复记录

  9. 9

    删除SQL中的重复记录

  10. 10

    如何删除SQL中的重复记录?

  11. 11

    更新除SQL Server表中重复记录之外的所有记录

  12. 12

    更新SQL Server表中除重复记录之一以外的所有记录

  13. 13

    如何从SQL Server删除重复记录?

  14. 14

    合并SQL Server中的重复记录

  15. 15

    从表中查找重复记录,并删除除最近日期以外的所有记录

  16. 16

    从表中查找重复记录,并删除除最近日期以外的所有记录

  17. 17

    删除 vCard 文件中的重复记录

  18. 18

    Teradata bteq sql 删除表中带有 min(column) 的重复记录

  19. 19

    删除重复记录

  20. 20

    如何避免在表类型sql server中插入重复记录

  21. 21

    如何从SQL Server中的表中删除重复的记录?

  22. 22

    从没有主键的Postgresql表中删除重复记录?

  23. 23

    如何在显示时从同一表中删除重复记录

  24. 24

    删除mySql表中的第二个重复记录

  25. 25

    SQL Server:如何允许在小表上重复记录

  26. 26

    SQL Server:如何允许在小表上重复记录

  27. 27

    如何防止书签表中Rails中的重复记录?

  28. 28

    SQL中的重复记录

  29. 29

    在PL / SQL中检查重复记录

热门标签

归档