最近碰到个颇有意思的需求,须要把一些正整数区间拆分红一个一个的数字。sql
好比要将数据库
起始数 终止数ide
14 16.net
21 25blog
35 35get
43 46it
拆分红table
14class
15百度
16
21
22
23
24
25
35
43
44
45
46
在百度上搜了半天只找到Oracle版本的脚本,连接:https://blog.csdn.net/daiqiulong2/article/details/48859485
无奈本人用的是SQLSERVER数据库,只能本身动手用游标解决了。脚本以下:
create table #原始数据 (起始数 int ,结束数 int) insert into #原始数据 values (14,16) insert into #原始数据 values (21,25) insert into #原始数据 values (35,35) insert into #原始数据 values (43,46) create table #处理后数据 (num int) DECLARE @起始数 int , @结束数 int DECLARE cur CURSOR FAST_FORWARD READ_ONLY FOR select 起始数,结束数 from #原始数据 ORDER BY 起始数 ASC OPEN cur FETCH NEXT FROM cur INTO @起始数,@结束数 WHILE @@FETCH_STATUS = 0 begin declare @i int=@起始数 while @i <= @结束数 begin insert into #处理后数据 values (@i) set @i = @i+1 end FETCH NEXT FROM cur INTO @起始数,@结束数 end CLOSE cur DEALLOCATE cur select num from #处理后数据 ORDER BY num drop table #原始数据 drop table #处理后数据