使用Ruby,您可以使用以下代码生成数组:
some_range = (1..10).to_a
# Returns => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我正在使用SELECT语句在SQL Server中寻找类似的东西。即我想制作这张桌子:
id
1
2
3
4
5
6
7
8
9
10
etc
声明如下:
DECLARE @ids TVP
INSERT @ids
(id)
SELECT RANGE(0..10000)
我的用例是我想要一种快速的方法来测试将@ids作为TVP的SP。 SQL Server是否提供了实现此目的的东西?
答案 0 :(得分:1)
如果我想生成一个数字表,我通常会使用这样的递归CTE:
;WITH NumberGen AS
(
SELECT 1 AS Number
UNION ALL
SELECT Number + 1 AS Number
FROM NumberGen
WHERE Number < $#RowsToBeGenerated$
)
INSERT INTO $Table$($Field$)
(
SELECT Number
FROM NumberGen
WHERE Number BETWEEN 1 AND $#RowsToBeGenerated$
)
OPTION (MAXRECURSION 0);
答案 1 :(得分:1)
DECLARE @Range INT = 10
;with cte
as
(
select 1 as value
union all
select value + 1 from cte where value < @Range
)
select * from cte