是否可以通过循环的一次迭代从表中获得以下结果:每次从每个人 cd_number 中获取一个数字及其日期。我尝试使用循环,但无法按照我需要的方式迭代它。SQL问题详细除了使用循环之外还有其他方法来检索特定结果吗?
table result;
cd_number date_begin date_end
1 03-APR-17 03-JUN-19
1 25-FEB-19 03-JUN-20
1 13-MAR-20 30-JUN-23
2 02-NOV-17 30-APR-18
2 25-FEB-19 11-OCT-19
3 31-DEC-16 30-OCT-17
3 21-OCT-21 16-FEB-22
3 19-OCT-22 30-JUN-23
Example table with results
CREATE TABLE tbl28 (cd_Number int, date_begin date, date_end date );
insert into tbl28 (cd_Number,date_begin,date_end)
SELECT 1, '03-APR-17', '03-JUN-19' FROM DUAL UNION ALL
SELECT 1, '25-FEB-19', '03-JUN-19' FROM DUAL UNION ALL
SELECT 1, '13-MAR-20', '30-JUN-23' FROM DUAL UNION ALL
SELECT 2, '02-NOV-17', '30-APR-18' FROM DUAL UNION ALL
SELECT 2, '25-FEB-19', '11-OCT-19' FROM DUAL UNION ALL
SELECT 3, '31-DEC-16', '30-OCT-17' FROM DUAL UNION ALL
SELECT 3, '21-OCT-21', '16-FEB-22' FROM DUAL UNION ALL
SELECT 3, '19-OCT-22', '30-JUN-23' FROM DUAL;
expected result;
first iteration 1 03-APR-17 03-JUN-19
2 02-NOV-17 30-APR-18
3 31-DEC-16 30-OCT-17
second iteration
1 25-FEB-19 03-JUN-20
2 25-FEB-19 11-OCT-19
3 21-OCT-21 16-FEB-2 2
and in the third iteration
1 13-MAR-20 30-JUN-23
3 19-OCT-22 30-JUN-23
使用
ROW_NUMBER
解析函数生成迭代次数:其中,对于样本数据:
输出:
如果您只想要特定的迭代,则枚举子查询中的迭代,然后在外部查询中进行过滤:
哪个输出:
小提琴