我有一个表,其中的行带有范围的开始和结束编号,例如
key startID endID 1 500 505 2 784 788 3 802 804
等等..
我想创建一个临时表(或表变量/ cte等),其中每个数字都有一行,并且它们之间的范围也包括在内-即给出上述示例,我希望看到一个具有以下行的表:
ID 500 501 502 503 504 505 784 785 786 787 788 802 803 804
谁能指出我朝着实现这一目标的快捷方式的方向?我考虑过以某种方式使用数字表,但是我正在查看的表具有> 200m行,而我没有那么大的数字表!
任何帮助深表感谢。提前致谢。
WITH q AS ( SELECT startId, endId FROM ranges UNION ALL SELECT startId + 1, endId FROM q WHERE startId < endId ) SELECT startId FROM q OPTION (MAXRECURSION 0)