钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读929308
首页 SQL 正文内容

sql去重复多字段

钟逸 SQL 2025-07-07 03:48:38 3

在处理数据时,重复记录会导致混乱和不准确。为了解决这个问题,SQL 提供了有效的去重机制,可以轻松删除重复的数据。

如何使用 DISTINCT 关键字

最常用的去重方式是使用 DISTINCT 关键字,它会删除结果集中重复的值。以下示例演示如何使用 DISTINCT 去重两个字段:

sql

SELECT DISTINCT name, email

FROM customers;

这将只返回每位客户的唯一记录,其中 name 和 email 都是不同的。

使用 GROUP BY 子句

GROUP BY 子句也可以用于去重。它将结果分组,然后为每个组只返回一行数据。以下示例通过 name 和 email 进行分组:

sql

SELECT name, email

FROM customers

GROUP BY name, email;

这将为每个具有唯一 name 和 email 组合的客户返回一行数据。

结合 DISTINCT 和 GROUP BY

有时,您可能需要同时使用 DISTINCT 和 GROUP BY。这允许您去重某些字段,同时还能保持其他字段的唯一性。以下示例通过 name 和 email 进行分组,并只返回不同的 email:

sql

SELECT DISTINCT email

FROM customers

GROUP BY name;

这将为具有不同 email 的每个客户返回一行数据,即使他们的 name 相同。

处理 NULL 值

在处理 NULL 值时,DISTINCT 会将 NULL 视为其他任何值。这意味着它将保留具有 NULL 值的重复记录。要避免这种情况,可以使用 GROUP BY COALESCE() 函数:

sql

SELECT COALESCE(name, 'null') AS name

FROM customers

GROUP BY COALESCE(name, 'null');

这将将 NULL 值替换为 'null' 字符串,确保可以正确去重这些记录。

文章目录
    搜索