我有一张表,其中有重复记录,包含以下属性:
现在的问题是,存在具有相同主键但不同“注释”的重复记录。 记录存在如下:
+------------+-----------+
| Primary_ID | Comments |
+------------+-----------+
| 1 | abc |
| 1 | null |
| 1 | abc |
| 2 | asdf |
| 3 | null |
| 4 | abc |
| 4 | null |
+------------+-----------+
我希望查询删除具有重复项且注释为空的记录。 这是它应该是什么样子:
+------------+----------+
| Primary_ID | Comments |
+------------+----------+
| 1 | abc |
| 2 | asdf |
| 3 | null |
| 4 | abc |
+------------+----------+
我尝试使用以下查询完成此操作:
delete from myTab
where PRIMARY_ID
not in
( SELECT distinct PRIMARY_ID, COMMENT
FROM myTab)
答案 0 :(得分:0)
DELETE FROM myTab
WHERE Comments IS NULL
OR PRIMARY_ID NOT IN(SELECT PRIMARY_ID
FROM myTab
HAVING COUNT(PRIMARY_ID)>1)
修改强>
将OR
替换为AND
,因为它取决于你的意思删除有重复的记录并且评论为nul