ARRAY_GENERATE_RANGE

ARRAY_GENERATE_RANGE

ARRAY_GENERATE_RANGE() 함수는 지정된 범위 안의 정수 값을 담은 ARRAY를 반환해요 (예: [2, 3, 4]).

출처: Snowflake SQL Reference

본문

문법

ARRAY_GENERATE_RANGE( <start> , <stop> [ , <step> ] )

인자

start (필수) — 반환할 숫자 범위의 첫 번째 숫자예요. INTEGER 값으로 평가되는 표현식을 지정해야 해요.

stop (필수) — 범위의 마지막 숫자예요. 이 숫자는 반환되는 숫자 범위에 포함되지 않아요. 예를 들어 ARRAY_GENERATE_RANGE(1, 5)는 [1, 2, 3, 4]를 반환해요 (5는 포함하지 않아요). INTEGER 값으로 평가되는 표현식을 지정해야 해요.

step (선택) — 배열의 각 후속 숫자를 증가/감소시킬 양이에요. 예를 들어:

  • ARRAY_GENERATE_RANGE(0, 16, 5)는 [0, 5, 10, 15]를 반환해요.
  • ARRAY_GENERATE_RANGE(0, -16, -5)는 [0, -5, -10, -15]를 반환해요.

양수 또는 음수를 지정할 수 있어요. 0은 지정할 수 없어요. 기본값은 1이에요.

반환

지정된 범위의 정수 ARRAY를 반환해요.

인자 중 어떤 것이 NULL이면 함수는 NULL을 반환해요.

사용 노트

start 이후 각 후속 요소는 step이 양수인지 음수인지에 따라 stop까지(stop 제외) step만큼 증가하거나 감소해요.

예를 들어:

  • ARRAY_GENERATE_RANGE(10, 50, 10)는 [10, 20, 30, 40]을 반환해요.
  • ARRAY_GENERATE_RANGE(-10, -50, -10)는 [-10, -20, -30, -40]을 반환해요.

다음 조건 중 하나라도 해당하면 함수는 빈 ARRAY를 반환해요:

  • start = stop.
  • step이 양수이고 start > stop.
  • step이 음수이고 start < stop.

예를 들어:

  • ARRAY_GENERATE_RANGE(2, 2, 4)는 []를 반환해요.
  • ARRAY_GENERATE_RANGE(8, 2, 2)는 []를 반환해요.
  • ARRAY_GENERATE_RANGE(2, 8, -2)는 []를 반환해요.

예제

다음 예제는 2에서 시작해 5 전에 끝나는 숫자 범위를 담은 ARRAY를 반환해요:

SELECT ARRAY_GENERATE_RANGE(2, 5);
+----------------------------+
| ARRAY_GENERATE_RANGE(2, 5) |
|----------------------------|
| [                          |
|   2,                       |
|   3,                       |
|   4                        |
| ]                          |
+----------------------------+

다음 예제는 5에서 시작해 25 전에 끝나며 값이 10씩 증가하는 숫자 범위를 담은 ARRAY를 반환해요:

SELECT ARRAY_GENERATE_RANGE(5, 25, 10);
+---------------------------------+
| ARRAY_GENERATE_RANGE(5, 25, 10) |
|---------------------------------|
| [                               |
|   5,                            |
|   15                            |
| ]                               |
+---------------------------------+

다음 예제는 -5에서 시작해 -25 전에 끝나며 값이 -10씩 감소하는 숫자 범위를 담은 ARRAY를 반환해요:

SELECT ARRAY_GENERATE_RANGE(-5, -25, -10);
+------------------------------------+
| ARRAY_GENERATE_RANGE(-5, -25, -10) |
|------------------------------------|
| [                                  |
|   -5,                              |
|   -15                              |
| ]                                  |
+------------------------------------+

더 알아보기 (Learn more)