ARRAY_CONSTRUCT_STRUCTURED
ARRAY_CONSTRUCT_STRUCTURED
ARRAY_CONSTRUCT_STRUCTURED 함수는 하나 이상의 입력에서 구성된 정형(structured) ARRAY를 반환해요. 이때 요소 타입은 입력의 공통 타입이에요.
본문
ARRAY_CONSTRUCT_STRUCTURED 함수는 하나 이상의 입력에서 구성된 정형 ARRAY를 반환해요. 요소 타입은 입력의 공통 타입이에요.
반정형 ARRAY를 반환하는 ARRAY_CONSTRUCT와 달리, 이 함수는 정형 ARRAY(<type>) 값을 반환해요.
함께 보기: ARRAY_CONSTRUCT
구문 (Syntax)
ARRAY_CONSTRUCT_STRUCTURED( <expr1> [ , <expr2> [ , ... ] ] )
인자 (Arguments)
- expr# — 평가할 입력 표현식들이에요. 결과 값이 배열의 요소가 되며, 모든 입력 표현식은 단일 공통 요소 타입으로 캐스트돼요.
반환 (Returns)
정형 ARRAY, 즉 ARRAY(<type>)를 반환해요. 요소 타입은 모든 입력 표현식이 캐스트되는 공통 타입이에요. 입력 중 하나라도 NULL일 수 있으면 요소 타입은 nullable이에요.
사용 메모 (Usage notes)
- 인자를 하나 이상 지정해야 해요.
ARRAY_CONSTRUCT와 달리 이 함수는 빈 인자 목록을 지원하지 않아요. - 인자 중 하나 이상은
NULL이 아닌 타입이어야 해요. 모든 인자가 타입이 없는NULL이면 요소 타입을 결정할 수 없으므로 함수가 오류를 반환해요. - 모든 인자는 단일 공통 요소 타입으로 캐스트돼요. 예를 들어
ARRAY_CONSTRUCT_STRUCTURED(1, '1')은 혼합 타입이 아닌 단일 요소 타입의 배열을 반환해요. NULL입력 값은 결과 배열의 요소로 유지돼요.- 요소 타입 자체가 정형 타입일 수 있어요. 예를 들어 정형
ARRAY값이나MAP값의 정형ARRAY를 구성할 수 있어요. - 반정형
ARRAY를 구성하려면ARRAY_CONSTRUCT를 사용해요.
예제 (Examples)
숫자의 정형 배열을 구성해요:
SELECT ARRAY_CONSTRUCT_STRUCTURED(1, 2, 3) AS structured_array;
+------------------+
| STRUCTURED_ARRAY |
|------------------|
| [ |
| 1, |
| 2, |
| 3 |
| ] |
+------------------+
NULL 입력 값은 결과 배열의 요소로 유지돼요:
SELECT ARRAY_CONSTRUCT_STRUCTURED(NULL, 'a', 'b') AS structured_array;
+------------------+
| STRUCTURED_ARRAY |
|------------------|
| [ |
| undefined, |
| "a", |
| "b" |
| ] |
+------------------+
요소 자체가 정형 배열인 정형 배열을 구성해요:
SELECT ARRAY_CONSTRUCT_STRUCTURED(
[1, 2]::ARRAY(INT),
[3, 4]::ARRAY(INT)) AS nested_array;
+--------------+
| NESTED_ARRAY |
|--------------|
| [ |
| [ |
| 1, |
| 2 |
| ], |
| [ |
| 3, |
| 4 |
| ] |
| ] |
+--------------+
더 알아보기 (Learn more)
- ARRAY_CONSTRUCT
- OBJECT_CONSTRUCT
- 반정형 및 정형 데이터 함수 (Semi-structured and structured data functions)