加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 创建带数字范围的临时表

发布时间:2020-12-12 08:46:56 所属栏目:MsSql教程 来源:网络整理
导读:我有一个表格,其中有一行的开始和结束编号范围,例如 key startID endID 1 500 505 2 784 788 3 802 804 等等.. 我想创建一个临时表(或表变量/ cte等),它们为每个这些数字和它们之间覆盖的范围有一行 – 即给出上面的示例,我想看到一个具有以下行的表: ID5005
我有一个表格,其中有一行的开始和结束编号范围,例如
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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读