- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
OBJECT_PICK¶
既存のオブジェクトからのキーと値のペアのいくつかを含む新しい OBJECT を返します。
新しいオブジェクトに含めるキーと値のペアを識別するには、キーを引数として渡すか、キーを含む配列を渡します。
指定されたキーが入力オブジェクトに存在しない場合、キーは無視されます。
構文¶
OBJECT_PICK( <object>, <key1> [, <key2>, ... ] )
OBJECT_PICK( <object>, <array> )
引数¶
object
入力オブジェクト。
key1
、key2
返されるオブジェクトに含める必要があるキーと値のペアを識別する1つ以上のキー。
array
返されるオブジェクトに含める必要があるキーと値のペアを識別するキーの配列。
戻り値¶
指定されたキーと値のペアを含む新しい OBJECT を返します。
使用上の注意¶
構造化 OBJECTs の場合:
キーとなる引数には、定数を指定する必要があります。
キーの ARRAY を第2引数として渡すことはできません。各キーを個別の引数として指定する必要があります。
この関数は構造化 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 を返します。+-----------------------+--------------------------------------------------------------+ | 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 | | } | +------------+
上記の例では、キーは引数として 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 | | } | +------------+