ARRAY_MIN
ARRAY_MIN (배열 최솟값)
입력 ARRAY가 주어질 때, SQL NULL이 아닌 값 중 가장 낮은 값을 가진 요소를 반환해요. 입력 ARRAY가 비어 있거나 SQL NULL 요소만 포함하면 이 함수는 NULL을 반환해요.
본문
구문
ARRAY_MIN( <array> )
인자
array
입력 ARRAY예요.
반환 값
이 함수는 SQL NULL이 아닌 값 중 가장 낮은 값을 가진 요소를 담은 VARIANT를 반환해요.
array가 NULL이거나, 비어 있거나, SQL NULL 요소만 포함하면 함수는 NULL을 반환해요.
사용 시 참고 사항
-
SQL NULL은 반구조적 데이터의 명시적 null 값(예: JSON 데이터의 JSON null)과 구별돼요. 가장 낮은 값을 가진 요소를 찾을 때 명시적 null 값은 고려돼요.
-
함수는 배열의 요소들을 비교해 반환할 요소를 결정해요. 함수는 같은 데이터 타입의 요소 또는 다음 데이터 타입의 요소 비교를 지원해요.
-
NUMBER와 FLOAT 데이터 타입의 요소.
-
TIMESTAMP_LTZ와 TIMESTAMP_TZ 데이터 타입의 요소.
배열에 다른 데이터 타입의 요소가 있으면 아래 예시처럼 요소를 공통 데이터 타입으로 캐스팅하세요.
-
예시
다음 예시는 ARRAY 상수에서 가장 낮은 값을 가진 요소를 담은 VARIANT를 반환해요.
SELECT ARRAY_MIN([20, 0, NULL, 10, NULL]);
+------------------------------------+
| ARRAY_MIN([20, 0, NULL, 10, NULL]) |
|------------------------------------|
| 0 |
+------------------------------------+
다음 예시는 입력 ARRAY가 비어 있으면 함수가 NULL을 반환함을 보여줘요.
SELECT ARRAY_MIN([]);
+---------------+
| ARRAY_MIN([]) |
|---------------|
| NULL |
+---------------+
다음 예시는 입력 ARRAY가 SQL NULL만 포함하면 함수가 NULL을 반환함을 보여줘요.
SELECT ARRAY_MIN([NULL, NULL, NULL]);
+-------------------------+
| ARRAY_MIN([NULL, NULL]) |
|-------------------------|
| NULL |
+-------------------------+
데이터 타입이 다른 요소들로 이루어진 배열의 최솟값을 구하려면 요소들을 같은 데이터 타입으로 캐스팅하세요. 다음 예시는 배열의 최솟값을 구하기 위해 DATE 요소를 TIMESTAMP 요소로 캐스팅해요.
SELECT ARRAY_MIN([date1::TIMESTAMP, timestamp1]) AS array_min
FROM (
VALUES ('1999-01-01'::DATE, '2023-12-09 22:09:26.000000000'::TIMESTAMP),
('2023-12-09'::DATE, '1999-01-01 22:09:26.000000000'::TIMESTAMP)
AS t(date1, timestamp1)
);
+---------------------------+
| ARRAY_MIN |
|---------------------------|
| "1999-01-01 00:00:00.000" |
| "1999-01-01 22:09:26.000" |
+---------------------------+