2014-03-06 47 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,你可以看看。