- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
OBJECT_PICK¶
Retorna um novo OBJECT contendo alguns dos pares chave-valor de um objeto existente.
Para identificar os pares chave-valor a serem incluídos no novo objeto, passe nas chaves como argumentos, ou passe em uma matriz contendo as chaves.
Se uma chave especificada não estiver presente no objeto de entrada, a chave é ignorada.
Sintaxe¶
OBJECT_PICK( <object>, <key1> [, <key2>, ... ] )
OBJECT_PICK( <object>, <array> )
Argumentos¶
object
O objeto de entrada.
key1
,key2
Uma ou mais chaves identificando os pares chave-valor que devem ser incluídos no objeto devolvido.
array
Conjunto de chaves que identificam os pares chave-valor que devem ser incluídos no objeto devolvido.
Retornos¶
Retorna um novo OBJECT contendo os pares chave-valor especificados.
Notas de uso¶
Para OBJECTs estruturados:
Para os argumentos que são chaves, você deve especificar constantes.
Você não pode passar uma ARRAY de chaves como segundo argumento. Você deve especificar cada chave como um argumento separado.
A função retorna um OBJECT estruturado. O tipo de OBJECT inclui as chaves na ordem em que são especificadas.
Por exemplo, suponha que você selecione as chaves
state
ecity
nesta ordem: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);
A função retorna um OBJECT do tipo
OBJECT(state VARCHAR, city VARCHAR)
.+-----------------------+--------------------------------------------------------------+ | NEW_OBJECT | SYSTEM$TYPEOF(NEW_OBJECT) | |-----------------------+--------------------------------------------------------------| | { | OBJECT(state VARCHAR(16777216), city VARCHAR(16777216))[LOB] | | "state": "CA", | | | "city": "San Mateo" | | | } | | +-----------------------+--------------------------------------------------------------+
Exemplos¶
O exemplo seguinte chama OBJECT_PICK para criar um novo objeto que contenha dois dos três pares chave-valor de um objeto existente:
SELECT OBJECT_PICK( OBJECT_CONSTRUCT( 'a', 1, 'b', 2, 'c', 3 ), 'a', 'b' ) AS new_object; +------------+ | NEW_OBJECT | |------------| | { | | "a": 1, | | "b": 2 | | } | +------------+
No exemplo acima, as chaves são passadas como argumentos para OBJECT_PICK. Você também pode usar uma matriz para especificar as chaves, como mostrado abaixo:
SELECT OBJECT_PICK( OBJECT_CONSTRUCT( 'a', 1, 'b', 2, 'c', 3 ), ARRAY_CONSTRUCT('a', 'b') ) AS new_object; +------------+ | NEW_OBJECT | |------------| | { | | "a": 1, | | "b": 2 | | } | +------------+