我有带有示例数据的下表:
DummyData
CREATE TABLE DummyData
(
ID int,
Dates_Range VARCHAR(50)
);
样本数据:
INSERT INTO DummyData VALUES(1,'2019-01-01');
INSERT INTO DummyData VALUES(1,'2019-01-02');
INSERT INTO DummyData VALUES(1,'2019-01-03');
INSERT INTO DummyData VALUES(NULL,'2019-01-04 - 2019-02-01');
INSERT INTO DummyData VALUES(1,'2019-02-02');
INSERT INTO DummyData VALUES(2,'2019-01-06');
INSERT INTO DummyData VALUES(NULL,'2019-01-07');
INSERT INTO DummyData VALUES(2,'2019-01-08');
INSERT INTO DummyData VALUES(2,'2019-01-09');
INSERT INTO DummyData VALUES(3,'2019-01-02');
INSERT INTO DummyData VALUES(3,'2019-01-03');
INSERT INTO DummyData VALUES(NULL,'2019-01-04 - 2019-01-09');
INSERT INTO DummyData VALUES(3,'2019-01-10');
查询:我需要查找NULLID 之前和之后的n个数字数据。
例如1:我需要从NULLID 之前和之后找到1个数据,然后输出将是:
ID DRange
-------------------------------
1 2019-01-03
NULL 2019-01-04 - 2019-02-01
1 2019-02-02
2 2019-01-06
NULL 2019-01-07
2 2019-01-08
3 2019-01-03
NULL 2019-01-04 - 2019-01-09
3 2019-01-10
例如2:我需要在NULLID 前后找到2个数据,然后输出将是:
ID DRange
-------------------------------
1 2019-01-02
1 2019-01-03
NULL 2019-01-04 - 2019-02-01
1 2019-02-02
2 2019-01-06
NULL 2019-01-07
2 2019-01-08
2 2019-01-09
3 2019-01-02
3 2019-01-03
NULL 2019-01-04 - 2019-01-09
3 2019-01-10
例如3:我需要从NULLID 之前和之后找到3个数据,然后输出将是:
ID DRange
-------------------------------
1 2019-01-01
1 2019-01-02
1 2019-01-03
NULL 2019-01-04 - 2019-02-01
1 2019-02-02
2 2019-01-06
NULL 2019-01-07
2 2019-01-08
2 2019-01-09
3 2019-01-02
3 2019-01-03
NULL 2019-01-04 - 2019-01-09
3 2019-01-10
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。