基於主鍵列高效率刪除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中文網其他相關文章!