【发布时间】:2014-08-15 21:04:41
【问题描述】:
我正在使用 SQL Server 2005,并希望删除日期最早的重复记录。例如,我有一个培训数据库,其中包含员工编号、班级名称和日期。有些人上过不止一次课,但我们只需要保留最近一次上课的记录。
【问题讨论】:
标签: sql
我正在使用 SQL Server 2005,并希望删除日期最早的重复记录。例如,我有一个培训数据库,其中包含员工编号、班级名称和日期。有些人上过不止一次课,但我们只需要保留最近一次上课的记录。
【问题讨论】:
标签: sql
我会在CTE 中使用ROW_NUMBER:
WITH CTE AS
(
SELECT ID, Scan, TrainingDate, TrainingType,
rn = ROW_NUMBER() Over (Partition By Scan, TrainingType
Order By TrainingDate DESC)
FROM dbo.SETD_SimpleScan
)
DELETE FROM CTE WHERE rn > 1
将DELETE 替换为SELECT * 以查看您要删除的内容。
【讨论】: