首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 重複記錄刪除技巧:完全重複與關鍵欄位重複兩大場景

     編輯:關於SqlServer

重複記錄分兩類:完全重複(所有欄位相同)與關鍵欄位重複(如 Name 相同,其他欄位不拘)。

場景一:完全重複,保留一筆

SELECT DISTINCT * INTO #Tmp FROM tableName;
DROP TABLE tableName;
SELECT * INTO tableName FROM #Tmp;
DROP TABLE #Tmp;

根本解決:於資料表加上唯一索引欄位。

場景二:關鍵欄位重複(如 Name, Address),保留第一筆

SELECT IDENTITY(INT,1,1) AS autoID, * INTO #Tmp FROM tableName;
SELECT MIN(autoID) AS autoID INTO #Tmp2 FROM #Tmp GROUP BY Name, Address;
SELECT * FROM #Tmp WHERE autoID IN (SELECT autoID FROM #Tmp2);

最後一個 SELECT 即得不重複結果集(含 autoID,實際撰寫時可於 SELECT 列表中排除)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved