我想删除一排的日期2020-01-08 ..second行..。在SQL Server中

发布于 2020-01-17 14:02:51
试试这个:
DECLARE @DataSource TABLE
(
[StuffID] INT
,[PucnhOut] DATETIME2
)
INSERT INTO @DataSource ([StuffID], [PucnhOut])
VALUES (1, '2019-01-01 00:00:05')
,(1, '2019-01-01 00:00:06')
,(2, '2019-01-01 00:00:06');
WITH DataSource AS
(
SELECT *
,ROW_NUMBER() OVER(PARTITION BY [StuffID] ORDER BY [PucnhOut] DESC) AS [Rank]
FROM @DataSource
)
DELETE FROM DataSource
WHERE [Rank] > 1;
SELECT *
FROM @DataSource这样做的目的是对行进行排序,并删除排名高于1的行。我们使用的是ROW_NUMBER --在partition by子句列表中,列出要分组的所有列。
https://stackoverflow.com/questions/59788854
复制相似问题