我想选择不同的NAME并删除ID<>的行该名称的最大值(ID)。
表格如下......
NAME DATE ID
BudgetX.dbo.Persons 2015-02-13 13:53:38.780 1
BudgetX.dbo.Persons 2015-02-13 13:53:38.780 2
BudgetX.dbo.ILFS 2015-02-13 14:29:55.347 3
BudgetX.dbo.ILFS 2015-02-13 14:29:55.347 4
BudgetX.dbo.ILFS 2015-02-13 14:30:10.813 5
我想删除除第2行和第5行以外的所有内容。
任何想法都赞赏。
谢谢,RR
答案 0 :(得分:3)
您可以使用CTE + ROW_NUMBER
:
WITH CTE AS
(
SELECT Name, Date, ID,
RN = ROW_NUMBER() OVER (PARTITION BY Name ORDER BY ID DESC)
FROM dbo.TableName
)
DELETE FROM CTE WHERE RN > 1