2014-03-06 79 views
0

我使用SQL Server,這是我的表結構sql查詢不會放棄在SQL Server預期的結果

start end interval 
1  3 1 
9  12 1 
16 20 2 
100 120 5 

預期的結果

1 
2 
3 
9 
10 
11 
12 
16 
18 
20 
100 
105 
110 
115 
120 

我在這裏發帖

select start as result,end1,interval 
from table 
union 
select result+1,interval,end1,interval 
from table 
品嚐過
+1

你試圖寫什麼邏輯?預期結果如何計算? – DarkKnight

回答

2

這是一個使用CTE的理想場所。下面的代碼應該給你你要尋找的答案:

;WITH IntervalCTE AS 
(
    SELECT [start] AS Value, [end], [interval] 
    FROM T 
    UNION ALL 
    SELECT [Value] + [interval], [end], [interval] 
    FROM IntervalCTE 
    WHERE [Value] < [end] 
) 
SELECT Value FROM IntervalCTE ORDER BY Value 

我還創建了一個SQL Fiddle,你可以看看。