2016-07-21 5 views
0

初心者のための単なる質問です。数字テーブルの増加 -

私はちょうど数字のリストが含まれている番号テーブルのためのセットベースのINSERTクエリを書く方法を知りたいです。

NumberID 
1 
2 
3 
4 
5 

次に、それは、私が7に番号を変更することを決定したと言うことができます:数字は、私は5つの数字をしたい場合は、数表を出力すべきそのように増分番号を含む各列と20行が異なるが、例えば可能以下に表示されます:

NumberID 
1 
2 
3 
4 
5 
6 
7 

どうすればよいですか?

+0

'" 5つの数値を必要とする場合、数値表は20行を出力する必要があります "? – Kaf

答えて

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); 
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