我有一张这样的桌子。
row_number date
---------- ----
1 2018-01-15
2 2018-01-27
3 2018-03-20
4 2019-01-30
我的目标是使如下所示。
beginning_date ending_date
-------------- -----------
2018-01-15 2018-01-27
2018-01-27 2018-03-20
2018-03-20 2019-01-30
在T-Sql中进行此查询需要什么样的查询?
如何将第四行的信息(表中有其他列)带入新的开始和结束日期表中?
最佳答案
您需要lead()
:
select t.*
from (select t.row_number, t.date, lead(date) over (order by t.row_number) as ending_date
from table t
) t
where ending_date is not null;
编辑:如果要所有行,请删除过滤器:
select t.row_number, t.date, lead(date) over (order by t.row_number) as ending_date
from table t;
如果您希望与开始日期相同的日期没有结束日期,则可以执行以下操作:
lead(date, 1, date) over (order by t.row_number) as ending_date
关于sql - 在T-SQL中从一列的连续日期创建两列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59488223/