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 |
| } |
+------------+