- 카테고리:
반정형 및 정형 데이터 함수 (배열/오브젝트)
ARRAY_SORT¶
오름차순 또는 내림차순으로 정렬된 입력 ARRAY 의 요소를 포함한 ARRAY를 반환합니다. NULL 요소를 NULL이 아닌 요소의 앞이나 뒤에 정렬할지 여부를 지정할 수 있습니다.
구문¶
ARRAY_SORT( <array> [ , <sort_ascending> [ , <nulls_first> ] ] )
인자¶
필수 사항
array
정렬할 요소의 ARRAY입니다.
선택 사항
sort_ascending
다음과 같이 요소를 오름차순으로 정렬할지, 내림차순으로 정렬할지 지정합니다.
요소를 오름차순으로 정렬하려면 TRUE를 지정하십시오.
요소를 내림차순으로 정렬하려면 FALSE를 지정하십시오.
기본값: TRUE
nulls_first
다음과 같이 정렬된 ARRAY의 시작 또는 끝에 SQL NULL 요소를 배치할지 여부를 지정합니다.
ARRAY에 SQL NULL 요소를 먼저 배치하려면 TRUE을 지정하십시오.
ARRAY의 마지막에 SQL NULL 요소를 배치하려면 FALSE을 지정하십시오.
기본값: ARRAY가 오름차순으로 정렬된 경우는 FALSE이고 ARRAY가 내림차순으로 정렬된 경우는 TRUE입니다.
이 인자는 SQL NULL 요소의 순서에만 영향을 미칩니다. 이는 JSON null 요소의 순서에 영향을 주지 않습니다.
반환¶
이 함수는 정렬된 순서로 array
의 요소를 포함하는 ARRAY를 반환합니다.
사용법 노트¶
예¶
다음 예에서는 오름차순으로 정렬된 입력 ARRAY 상수 의 요소가 포함된 숫자로 구성된 ARRAY를 반환합니다. 요소에는 JSON NULL(PARSE_JSON(‘null’)) 및 SQL NULL이 포함됩니다.
정렬된 ARRAY에서는 JSON NULL(null
) 및 SQL NULL(undefined
)이 마지막 요소입니다.
SELECT ARRAY_SORT([20, PARSE_JSON('null'), 0, NULL, 10]);
+---------------------------------------------------+
| ARRAY_SORT([20, PARSE_JSON('NULL'), 0, NULL, 10]) |
|---------------------------------------------------|
| [ |
| 0, |
| 10, |
| 20, |
| null, |
| undefined |
| ] |
+---------------------------------------------------+
다음 예에서는 요소가 내림차순으로 정렬된 숫자로 구성된 ARRAY를 반환합니다. 정렬된 ARRAY에서는 JSON NULL(null
) 및 SQL NULL(undefined
)이 첫 번째 요소입니다.
SELECT ARRAY_SORT([20, PARSE_JSON('null'), 0, NULL, 10], FALSE);
+----------------------------------------------------------+
| ARRAY_SORT([20, PARSE_JSON('NULL'), 0, NULL, 10], FALSE) |
|----------------------------------------------------------|
| [ |
| undefined, |
| null, |
| 20, |
| 10, |
| 0 |
| ] |
+----------------------------------------------------------+
다음 예에서는 요소를 오름차순으로 정렬합니다. 이 예에서는 nulls_first
인자를 TRUE로 설정하여 정렬된 ARRAY에서 SQL NULL(undefined
)을 먼저 배치합니다. (기본적으로 SQL NULL은 오름차순으로 정렬된 ARRAY의 끝에 배치됩니다.)
nulls_first
는 JSON NULL(null
)의 배치에 영향을 주지 않습니다.
SELECT ARRAY_SORT([20, PARSE_JSON('null'), 0, NULL, 10], TRUE, TRUE);
+---------------------------------------------------------------+
| ARRAY_SORT([20, PARSE_JSON('NULL'), 0, NULL, 10], TRUE, TRUE) |
|---------------------------------------------------------------|
| [ |
| undefined, |
| 0, |
| 10, |
| 20, |
| null |
| ] |
+---------------------------------------------------------------+
다음 예에서는 요소를 내림차순으로 정렬합니다. 이 예에서는 nulls_first
인자를 FALSE로 설정하여 정렬된 ARRAY에서 SQL NULL(undefined
)을 마지막으로 배치합니다. (기본적으로 SQL NULL은 내림차순으로 정렬된 ARRAY의 시작 부분에 배치됩니다.)
nulls_first
는 JSON NULL(null
)의 배치에 영향을 주지 않습니다.
SELECT ARRAY_SORT([20, PARSE_JSON('null'), 0, NULL, 10], FALSE, FALSE);
+-----------------------------------------------------------------+
| ARRAY_SORT([20, PARSE_JSON('NULL'), 0, NULL, 10], FALSE, FALSE) |
|-----------------------------------------------------------------|
| [ |
| null, |
| 20, |
| 10, |
| 0, |
| undefined |
| ] |
+-----------------------------------------------------------------+
다음 예에서는 ARRAY_INSERT 함수를 사용하여 희소하게 채워진 ARRAY를 생성합니다. (이 예에서는 ARRAY의 특정 위치에 값 1
과 2
를 삽입합니다.) 그런 다음 ARRAY_SORT 함수를 사용하여 이 ARRAY를 정렬합니다.
SELECT ARRAY_INSERT(ARRAY_INSERT(ARRAY_CONSTRUCT(), 3, 2), 6, 1) arr, ARRAY_SORT(arr);
+--------------+-----------------+
| ARR | ARRAY_SORT(ARR) |
|--------------+-----------------|
| [ | [ |
| undefined, | 1, |
| undefined, | 2, |
| undefined, | undefined, |
| 2, | undefined, |
| undefined, | undefined, |
| undefined, | undefined, |
| 1 | undefined |
| ] | ] |
+--------------+-----------------+
다음 예에서는 다양한 숫자 유형으로 ARRAY를 정렬하면 불안정하게 정렬되는 것을 보여줍니다. 이 예에서는 NUMBER 값과 REAL 값을 포함하는 ARRAY를 사용합니다.
SELECT ARRAY_SORT([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1e0::REAL]) AS array_of_different_numeric_types;
+----------------------------------+
| ARRAY_OF_DIFFERENT_NUMERIC_TYPES |
|----------------------------------|
| [ |
| 1, |
| 1.000000000000000e+00, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1, |
| 1 |
| ] |
+----------------------------------+