ARRAY_CONSTRUCT_STRUCTURED

ARRAY_CONSTRUCT_STRUCTURED

ARRAY_CONSTRUCT_STRUCTURED 함수는 하나 이상의 입력에서 구성된 정형(structured) ARRAY를 반환해요. 이때 요소 타입은 입력의 공통 타입이에요.

출처: ARRAY_CONSTRUCT_STRUCTURED

본문

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)