카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

OBJECT_PICK

기존 오브젝트의 일부 키-값 페어가 포함된 새 OBJECT 를 반환합니다.

새 오브젝트에 포함할 키-값 페어를 식별하려면 키를 인자로 전달하거나, 키가 포함된 배열을 전달합니다.

지정된 키가 입력 오브젝트에 없으면 키가 무시됩니다.

구문

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

OBJECT_PICK( <object>, <array> )
Copy

인자

object

입력 오브젝트입니다.

key1, key2

반환된 오브젝트에 포함되어야 하는 키-값 페어를 식별하는 하나 이상의 키입니다.

array

반환된 오브젝트에 포함되어야 하는 키-값 페어를 식별하는 키 배열입니다.

반환

지정된 키-값 페어를 포함하는 새 OBJECT를 반환합니다.

사용법 노트

정형 OBJECT 의 경우:

  • 키인 인자의 경우 상수를 지정해야 합니다.

  • 키로 구성된 ARRAY를 두 번째 인자로 전달할 수 없습니다. 각 키를 별도의 인자로 지정해야 합니다.

  • 이 함수는 정형 OBJECT를 반환합니다. OBJECT 유형에는 지정된 순서대로 키가 포함됩니다.

    예를 들어, statecity 키를 순서대로 선택한다고 가정해 보겠습니다.

    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);
    
    Copy

    이 함수는 OBJECT(state VARCHAR, city VARCHAR) 유형의 OBJECT를 반환합니다.

    +-----------------------+--------------------------------------------------------------+
    | NEW_OBJECT            | SYSTEM$TYPEOF(NEW_OBJECT)                                    |
    |-----------------------+--------------------------------------------------------------|
    | {                     | OBJECT(state VARCHAR(16777216), city VARCHAR(16777216))[LOB] |
    |   "state": "CA",      |                                                              |
    |   "city": "San Mateo" |                                                              |
    | }                     |                                                              |
    +-----------------------+--------------------------------------------------------------+
    

다음 예는 OBJECT_PICK을 호출하여 기존 오브젝트의 키-값 페어 3개 중 2개를 포함하는 새 오브젝트를 만듭니다.

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

위의 예에서 키는 인자로서 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   |
| }          |
+------------+
Copy