- 카테고리:
반정형 및 정형 데이터 함수 (배열/오브젝트)
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 |
| ] |
+----------------------------------+