OBJECT_PICK

OBJECT_PICK

OBJECT_PICK 함수는 기존 객체(object)에서 일부 키-값 쌍만 골라 담은 새 OBJECT를 반환해요.

새 객체에 포함할 키-값 쌍을 지정하려면 키들을 인자로 넘기거나, 키들을 담은 배열을 인자로 넘기면 돼요. 입력 객체에 없는 키를 지정하면 그 키는 무시돼요.

출처: 문서

본문

문법 (Syntax)

OBJECT_PICK( <object>, <key1> [, <key2>, ... ] )

OBJECT_PICK( <object>, <array> )

인자 (Arguments)

  • object — 입력 객체예요.
  • key1, key2, ... — 반환 객체에 포함할 키-값 쌍을 식별하는 키 하나 이상이에요.
  • array — 반환 객체에 포함할 키-값 쌍을 식별하는 키들의 배열이에요.

반환 (Returns)

지정한 키-값 쌍을 담은 새 OBJECT를 반환해요.

사용 메모 (Usage notes)

구조화된(structured) OBJECT의 경우:

  • 키 역할을 하는 인자는 상수(constant)로 지정해야 해요.
  • 두 번째 인자로 키들의 ARRAY를 넘길 수 없어요. 각 키를 개별 인자로 지정해야 해요.
  • 이 함수는 구조화된 OBJECT 값을 반환해요. OBJECT 값의 타입에는 키가 지정된 순서대로 포함돼요. 예를 들어 state와 city 키를 그 순서로 선택한다고 가정할게요: SELECT OBJECT_PICK( {'city':'San Mateo','state':'CA','zip_code':94402}::OBJECT(city VARCHAR,state VARCHAR,zip_code DOUBLE), 'state', 'city') AS new_object, SYSTEM$TYPEOF(new_object); 이 함수는 OBJECT(state VARCHAR, city VARCHAR) 타입의 OBJECT 값을 반환해요.

예제 (Examples)

다음 예제는 기존 객체의 세 키-값 쌍 중 두 개를 담은 새 객체를 만들기 위해 OBJECT_PICK을 호출해요:

SELECT OBJECT_PICK(
    OBJECT_CONSTRUCT(
        'a', 1,
        'b', 2,
        'c', 3
    ),
    'a', 'b'
) AS new_object;
+------------+
| NEW_OBJECT |
|------------|
| {          |
|   "a": 1,  |
|   "b": 2   |
| }          |
+------------+

위 예제에서는 키가 OBJECT_PICK의 인자로 전달됐어요. 아래처럼 배열을 사용해 키를 지정할 수도 있어요:

SELECT OBJECT_PICK(
    OBJECT_CONSTRUCT(
        'a', 1,
        'b', 2,
        'c', 3
    ),
    ARRAY_CONSTRUCT('a', 'b')
) AS new_object;
+------------+
| NEW_OBJECT |
|------------|
| {          |
|   "a": 1,  |
|   "b": 2   |
| }          |
+------------+

더 알아보기 (Learn more)