对于TSQL中的初学者来说,这只是一个简单的问题。
我只想知道如何为数字表编写一个基本INSERT查询,其中只包含一个数字列表。数字可能会有所不同,例如,如果我想要5个数字,则数字表应输出20行,每行包含一个增量编号,如下所示:
NumberID
1
2
3
4
5
然后我说我决定将数字更改为7,它将显示如下:
NumberID
1
2
3
4
5
6
7
我该怎么做?
答案 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);