请考虑以下删除重复记录的SQL Server
的情况我有一个表像下面
Tag | Id | Client | ....and more columns
c 30 X
c 40 Y
c 50 X
c 60 A
c 30 B
c 40 C
d 50 D
d 70 E
d 80 X
d 90 Z
i 30 X
i 90 Z
i 100 X
i 40 M
我想在这样的方式来选择表中的记录,如果标签= I 行下面得到从结果集中删除
i 30 X
i 90 Z
这是因为id = 90的行已经出现,tag = d和client = Z。 但该行即使ID = 40已经出现了客户
i 40 M
不能删除= C,因为客户端列值是不同的。
DELETE FROM myTable
WHERE tag=i AND id IN(SELECT id FROM myTable t1
INNER JOIN myTable t2
ON t1.id=t2.id
WHERE tag=d or tag=c)
为什么我必须删除'i 100 X'? –
我已经更新了..我必须删除“我30 X” –