首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询以消除重复记录

问SQL查询以消除重复记录
EN

Stack Overflow用户
提问于 2011-12-13 21:34:05
回答 3查看 7.1K关注 0票数 1

可能重复:

How Do You Delete Duplicate Records In SQL

我有一张有栏的桌子:

代码语言:javascript
复制
FirstName
LastName
AddressLine1
AddressLine2
City
State

对于每一行,AddressLine1与AddressLine2值不同。但是有一些重复的行,其中一些记录的AddressLine1与其他记录的AddressLine2匹配。

我想把上面提到的这些记录去掉。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-13 21:38:01

这将得到所有重复的记录:

代码语言:javascript
复制
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来删除如下所示的重复项:

代码语言:javascript
复制
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
)
票数 2
EN

Stack Overflow用户

发布于 2011-12-13 21:39:31

将表连接到自己的位置

代码语言:javascript
复制
DELETE a
FROM Table a
JOIN Table b
   ON a.AddressLine1 = b.AddressLine2
票数 1
EN

Stack Overflow用户

发布于 2011-12-13 21:41:35

用一些ID或名称交换掉UNIQUE_IDENTIFIER,或者在将来很容易识别到什么。然后您可以根据需要手动删除。或者根据需要将下面的内容修改为UPDATE或DELETE语句。

代码语言:javascript
复制
SELECT
  t1.UNIQUE_IDENTIFIER,
  t2.UNIQUE_IDENTIFIER
FROM
  table t1,
  table t2
WHERE
  t1.AddressLine1 = t2.AddressLine2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8496477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档