首頁 > 資料庫 > mysql教程 > 如何在保留一行的同時刪除SQL Server中的重複行?

如何在保留一行的同時刪除SQL Server中的重複行?

Linda Hamilton
發布: 2025-01-15 16:11:45
原創
922 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板