SQL Server 移除重複資料的方法

2025-03-20

說明如何將 SQL Server 資料表中的重複資料移除 🧹

SQL Server Logo

說明

如果無法分辨重複資料,例如無法根據主鍵或者流水號等唯一索引去區別要刪除的資料,可以透過 DISTINCT 關鍵字將重複資料先存入暫存表,再進行刪除與插入的動作。

/* 過濾重複的資料後,將資料存入暫存表 */
SELECT DISTINCT *
  INTO #TEMP_TABLE
  FROM [dbo].[TableName]
  WHERE DATE = '2025-03-20'
GO

/* 刪除重複資料 */
DELETE FROM [dbo].[TableName] WHERE DATE = '2025-03-20'
GO

/* 將暫存表資料插入原始表 */
INSERT INTO [dbo].[TableName] SELECT * FROM #TEMP_TABLE
GO

/* 刪除暫存表 */
DROP TABLE #TEMP_TABLE