SQL将范围拆分为单个行

SQL将范围拆分为单个行,sql,Sql,我有一张这样的桌子: JOBNO STARTNO ENDNO 123 1 5 456 6 7 789 8 10 STARTNO JOBNO 1 123 2 123 4 123 5 123 6 456 7 456 8 789 9 789 10

我有一张这样的桌子:

JOBNO   STARTNO     ENDNO
123     1           5
456     6           7
789     8           10
STARTNO    JOBNO
1          123
2          123
4          123
5          123
6          456
7          456
8          789
9          789
10         789
我需要这样的输出:

JOBNO   STARTNO     ENDNO
123     1           5
456     6           7
789     8           10
STARTNO    JOBNO
1          123
2          123
4          123
5          123
6          456
7          456
8          789
9          789
10         789
您需要递归cte:

这假设您正在使用SQL Server运行,如果不是,则语法可能会有所不同


如果startno有更多的间隙,请使用选项maxrecursion 0

您没有指定DBMS,但对于Postgres,您可以使用generate_series:


在线示例:

您能否向我们展示您为获得预期输出而编写的查询?你得到了什么结果?