可能重复:
How Do You Delete Duplicate Records In SQL
我有一张有栏的桌子:
FirstName
LastName
AddressLine1
AddressLine2
City
State对于每一行,AddressLine1与AddressLine2值不同。但是有一些重复的行,其中一些记录的AddressLine1与其他记录的AddressLine2匹配。
我想把上面提到的这些记录去掉。
发布于 2011-12-13 21:38:01
这将得到所有重复的记录:
SELECT P.*
FROM table P INNER JOIN
table S ON P.FirstName = S.FirstName
AND P.LastName = S.LastName
WHERE P.AddressLine1 = S.AddressLine2如果您的表有一个ID,您可以编写一个delete来删除如下所示的重复项:
DELETE FROM table
WHERE Id IN (
SELECT P.Id
FROM table P INNER JOIN
table S ON P.FirstName = S.FirstName
AND P.LastName = S.LastName
WHERE P.AddressLine1 = S.AddressLine2
)发布于 2011-12-13 21:39:31
将表连接到自己的位置
DELETE a
FROM Table a
JOIN Table b
ON a.AddressLine1 = b.AddressLine2发布于 2011-12-13 21:41:35
用一些ID或名称交换掉UNIQUE_IDENTIFIER,或者在将来很容易识别到什么。然后您可以根据需要手动删除。或者根据需要将下面的内容修改为UPDATE或DELETE语句。
SELECT
t1.UNIQUE_IDENTIFIER,
t2.UNIQUE_IDENTIFIER
FROM
table t1,
table t2
WHERE
t1.AddressLine1 = t2.AddressLine2https://stackoverflow.com/questions/8496477
复制相似问题