GENERATE_SERIES(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server 2022(16.x) Azure SQL Database Azure SQL Managed Instance SQL 분석 엔드포인트
일련의 숫자를 지정된 간격으로 생성합니다. 계열 값 사이의 간격과 단계는 사용자가 정의합니다.
호환성 수준 160
GENERATE_SERIES
에서는 호환성 수준이 160 이상이어야 합니다. 호환성 수준이 160보다 작으면 데이터베이스 엔진 함수를 GENERATE_SERIES
찾을 수 없습니다.
데이터베이스의 호환성 수준을 변경하려면 데이터베이스의 호환성 수준 보기 또는 변경을 참조합니다.
구문
GENERATE_SERIES ( start , stop [ , step ] )
인수
start
간격 내 첫 번째 값입니다. start는 tinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 식으로 지정됩니다.
stop
간격 내 마지막 값입니다. stop은 tinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 식으로 지정됩니다. 마지막으로 생성된 단계 값이 stop 값을 초과하면 계열이 중지됩니다.
중지할 데이터 형식은 시작의 데이터 형식과 일치해야 합니다.
[ 단계 ]
계열 내 단계 사이에 증가 또는 감소할 값의 수를 나타냅니다. step은 tinyint, smallint, int, bigint, 10진 또는 숫자 유형의 식입니다. step은 음수 또는 양수일 수 있지만 0(0
)일 수는 없습니다.
이 인수는 선택 사항입니다. step의 기본값은 start가 stop보다 작으면 1이고, start가 stop보다 크면 기본값은 -1입니다.
start가 stop보다 작고 step에 음수 값이 지정되었거나, start가 stop보다 크고 step에 양수 값이 지정되었다면 빈 결과 집합이 반환됩니다.
반환 형식
각 값이 앞의 값과 step만큼 다른 값 시퀀스가 포함된 단일 열 테이블을 반환합니다. 열 이름은 value
입니다. 출력은 start 및 stop과 형식이 동일합니다.
사용 권한
에 대한 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