sql查询没有在sql server中给出预期的结果

时间:2014-03-06 14:09:47

标签: 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 个答案:

答案 0 :(得分: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,你可以看一下。