我有一个表格,其中有一行的开始和结束编号范围,例如
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)