增量数表 - SQL

时间:2016-07-21 10:24:07

标签: sql sql-server

对于TSQL中的初学者来说,这只是一个简单的问题。

我只想知道如何为数字表编写一个基本INSERT查询,其中只包含一个数字列表。数字可能会有所不同,例如,如果我想要5个数字,则数字表应输出20行,每行包含一个增量编号,如下所示:

NumberID
1
2
3
4
5

然后我说我决定将数字更改为7,它将显示如下:

NumberID
1
2
3
4
5
6
7

我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用row_number()函数

select number from 
(
Select row_number() over (order by (select 0)) as number from sys.objects
) as t where number<=5

Select top 5 row_number() over (order by (select 0)) as number from sys.objects

答案 1 :(得分:0)

这是使用CTE的递归查询。最大可能数为32767。

DECLARE @Number INT = 5

;WITH x AS
(
  SELECT num = 1
  UNION ALL
  SELECT num + 1 FROM x WHERE num < @Number
)
SELECT num FROM x
OPTION (MAXRECURSION 32767);