我是 sql 新学习者,我有一个项目,它获取 3 个最新快照并将它们联合起来。
我总共有93张快照:
最新快照(93):
Declare @CDP_DATE_CURRENT [varchar](50) =
(select max ([CDP_DATE]) from [CD].[dbo].[abc] )
;
select * from [CD].[dbo].[abc]
如何获取快照 92、91 和 90?
这就是我为快照 93 所做的尝试
Declare @CDP_DATE_CURRENT [varchar](50) =
(select max ([CDP_DATE]) from [CD].[dbo].[abc] )
;
select * from [CD].[dbo].[abc]
我不太明白“联合它们”是什么意思,但是下面的查询 选择 3 个最新快照,不包括最后一个(根据要求):
select *
from (
select t.*, row_number() over(order by cdp_date desc) as rn
from cd.dbo.abc t
) x
where rn between 2 and 4;
如果您确实想要最后三个快照,可以将最后一行替换为
where rn between 1 and 3;
。