我有一张这样的桌子。
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。