从中插入所有数值

时间:2016-09-20 20:10:27

标签: sql-server

如果之前已经发布过,我很抱歉,但我似乎无法找到答案。我想将从某个起点到某个终点的整数添加到临时表中。

假设我有一张车辆表。每辆车都有一个往返的年份。例如,从2006年到2014年,福特野马GT可能具有相同的车身风格。

所以,我创建了表

create table #TempYears
    (
        intYearID int
)

我可以获得最低和最高年限

SELECT min(yearFrom) As minYear,
       max(yearTo) AS MaxYear
FROM vehicle

但我不确定如何将两者放在一起。

谢谢

1 个答案:

答案 0 :(得分:1)

您只需要插入JNevill评论中使用的cte ....

DECLARE @startnum INT
DECLARE @endnum INT
SET @startnum = (select min(yearFrom) from vehicle)
SET @endnum = (select max(yearFrom) from vehicle)

;WITH gen AS (
    SELECT @startnum AS num
    UNION ALL
    SELECT num+1 FROM gen WHERE num+1<=@endnum
)
INSERT INTO #TempYears SELECT * FROM gen
SELECT * FROM #TempYears