我有一个表格,其中有一行的开始和结束编号范围,例如
- 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
任何人都可以指出方向快捷方便吗?我想到使用数字表不知何故,但我正在看的表有> 200米行,我没有数字表大!
任何帮助深表感谢.提前致谢.
解决方法
- 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)