获取数据并与最新快照联合

问题描述 投票:0回答:1

我是 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]
sql ssms union snapshot union-all
1个回答
0
投票

我不太明白“联合它们”是什么意思,但是下面的查询 选择 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;

© www.soinside.com 2019 - 2024. All rights reserved.