GENERATE_SERIES(Transact-SQL)

적용 대상: Microsoft Fabric의 Microsoft FabricWarehouse에 있는 SQL Server 2022(16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL 분석 엔드포인트

일련의 숫자를 지정된 간격으로 생성합니다. 계열 값 사이의 간격과 단계는 사용자가 정의합니다.

호환성 수준 160

GENERATE_SERIES 에서는 호환성 수준이 160 이상이어야 합니다. 호환성 수준이 160보다 작으면 데이터베이스 엔진 함수를 GENERATE_SERIES 찾을 수 없습니다.

데이터베이스의 호환성 수준을 변경하려면 데이터베이스의 호환성 수준 보기 또는 변경을 참조합니다.

Transact-SQL 구문 표기 규칙

구문

GENERATE_SERIES ( start , stop [ , step ] )

인수

start

간격 내 첫 번째 값입니다. starttinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 으로 지정됩니다.

stop

간격 내 마지막 값입니다. stoptinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 으로 지정됩니다. 마지막으로 생성된 단계 값이 stop 값을 초과하면 계열이 중지됩니다.

stop의 데이터 형식은 start의 데이터 형식과 반드시 일치해야 합니다.

[ 단계 ]

계열 내 단계 사이에 증가 또는 감소할 값의 수를 나타냅니다. steptinyint, smallint, int, bigint, 10진 또는 숫자 유형의 입니다. step은 음수 또는 양수일 수 있지만 0(0)일 수는 없습니다.

이 인수는 선택 사항입니다. step의 기본값은 startstop보다 작으면 1이고, startstop보다 크면 기본값은 -1입니다.

startstop보다 작고 step에 음수 값이 지정되었거나, startstop보다 크고 step에 양수 값이 지정되었다면 빈 결과 집합이 반환됩니다.

반환 형식

각 값이 앞의 값과 step만큼 다른 값 시퀀스가 포함된 단일 열 테이블을 반환합니다. 열 이름은 value입니다. 출력은 startstop과 형식이 동일합니다.

사용 권한

에 대한 GENERATE_SERIES권한이 필요하지 않습니다. 그러나 사용자는 데이터베이스에 대한 EXECUTE 권한 및 입력으로 사용하는 데이터를 쿼리하는 권한이 필요합니다.

예제

다음 예제에서는 GENERATE_SERIES를 호출하는 구문을 보여 줍니다.

A. 1에서 10 사이의 일련의 정수 값을 1씩 증분합니다(기본값).

SELECT value
FROM GENERATE_SERIES(1, 10);

결과 집합은 다음과 같습니다.

value
-----------
1
2
3
4
5
6
7
8
9
10

B. 1에서 50 사이의 일련의 정수 값을 5씩 증분합니다

SELECT value
FROM GENERATE_SERIES(1, 50, 5);

결과 집합은 다음과 같습니다.

value
-----------
1
6
11
16
21
26
31
36
41
46

C. 0.0에서 1.0 사이의 일련의 소수점 값을 0.1씩 증분합니다

DECLARE @start decimal(2, 1) = 0.0;
DECLARE @stop decimal(2, 1) = 1.0;
DECLARE @step decimal(2, 1) = 0.1;

SELECT value
FROM GENERATE_SERIES(@start, @stop, @step);

결과 집합은 다음과 같습니다.

value
---------------------------------------
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0