最近碰到個頗有意思的需求,須要把一些正整數區間拆分紅一個一個的數字。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 #處理後數據