首页 > 数据库 > mysql教程 > 如何在保留一行的同时删除SQL Server中的重复行?

如何在保留一行的同时删除SQL Server中的重复行?

Linda Hamilton
发布: 2025-01-15 16:11:45
原创
968 人浏览过

How Can I Delete Duplicate Rows in SQL Server While Keeping One Row?

高效删除 SQL Server 中的重复行,同时保留单行

数据完整性在数据库管理中至关重要。 本文解决了从 SQL Server 表中删除重复行同时确保每个唯一数据集至少保留一个实例的常见问题。 T-SQL 使用公用表表达式 (CTE) 提供了一种简单的解决方案。

CTE 中的 OVER 子句是此过程的关键。 这是一个说明性示例:

<code class="language-sql">WITH cte AS (
  SELECT [foo], [bar],
     ROW_NUMBER() OVER (PARTITION BY [foo], [bar] ORDER BY [baz]) AS rn
  FROM [TABLE]
)
DELETE FROM cte
WHERE rn > 1;</code>
登录后复制

此查询使用 CTE 为由列 rn[foo] 定义的组中的每一行分配唯一的行号 ([bar])。 ORDER BY [baz] 子句确定保留每个组中的哪一行; 您应该根据您的具体需求进行调整。 然后,DELETE 语句会删除 rn 大于 1 的所有行,为 [foo][bar] 的每个唯一组合仅留下一个代表行。

此方法提供了一种有效且可靠的方法来维护 SQL Server 数据库中的数据清洁度和准确性。

以上是如何在保留一行的同时删除SQL Server中的重复行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板