Files
chill_notes/数据库/去重.md
2026-04-21 21:15:34 +08:00

989 B
Executable File
Raw Blame History

数据去重方法

SQL Server 数据去重常用方法

方法一:使用 DISTINCT

SELECT DISTINCT * FROM TableName

方法二:临时表去重

BEGIN TRAN

-- 1. 选中不重复的数据到临时表
SELECT DISTINCT * INTO #temp FROM DataSyncStationSX

-- 2. 删除原表数据
DELETE FROM DataSyncStationSX

-- 3. 从临时表导回
INSERT INTO DataSyncStationSX SELECT * FROM #temp

-- 4. 删除临时表
DROP TABLE #temp

COMMIT

方法三ROW_NUMBER 去重

-- 删除重复数据,保留最新一条
DELETE FROM TableName
WHERE ID IN (
    SELECT ID FROM (
        SELECT ID, ROW_NUMBER() OVER (PARTITION BY duplicate_column ORDER BY created_time DESC) AS rn
        FROM TableName
    ) t
    WHERE rn > 1
)

方法四:查找重复数据

-- 查找重复记录
SELECT column1, column2, COUNT(*) as cnt
FROM TableName
GROUP BY column1, column2
HAVING COUNT(*) > 1

⚠️ 执行删除前请先备份数据!