카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

ARRAY_GENERATE_RANGE

지정된 범위(예: [2, 3, 4]) 내 정수 값의 ARRAY 를 반환합니다.

구문

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

인자

필수:

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 이후 각 후속 요소는 최대 stop 까지(단, 이 값은 포함되지 않음). step 만큼 증가하거나 감소합니다(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);
Copy
+----------------------------+
| ARRAY_GENERATE_RANGE(2, 5) |
|----------------------------|
| [                          |
|   2,                       |
|   3,                       |
|   4                        |
| ]                          |
+----------------------------+

다음 예제에서는 5에서 시작하여 25 이전에 끝나는 숫자 범위를 포함하는 ARRAY를 반환하며, 값은 10씩 증가합니다.

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

다음 예제에서는 -5에서 시작하여 -25 이전에 끝나는 숫자 범위를 포함하는 ARRAY를 반환하며, 값은 -10씩 감소합니다.

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