基于主键列高效删除T-SQL中的重复行
问题:
由于数据创建过程中的错误,表中包含大量重复行。目标是在保留每个主键列唯一组合的一行的同时,消除多余的行。但是,表中包含一些与问题无关的列,这些列的数据略有不同,必须忽略。
解决方案:
对于SQL Server 2005及更高版本,可以使用OVER()函数和公用表表达式(CTE)来高效地删除重复行。
CTE和DELETE语句:
<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 cte WHERE [rn] > 1</code>
说明:
以上是T-SQL中如何根据键列高效删除重复行?的详细内容。更多信息请关注PHP中文网其他相关文章!