- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
OBJECT_KEYS¶
Retorna uma array contendo a lista de chaves no nível mais alto do objeto de entrada.
Sintaxe¶
OBJECT_KEYS( <object> )
Argumentos¶
Retornos¶
A função retorna uma ARRAY contendo as chaves.
Se object
for um OBJECT estruturado, a função retornará uma ARRAY(VARCHAR).
Notas de uso¶
Se o objeto contiver objetos aninhados (por exemplo, objetos dentro de objetos), isso retorna apenas as chaves do nível mais alto.
Exemplos¶
Exemplo básico¶
O próximo exemplo mostra OBJECT_KEYS trabalhando com um OBJECT e um VARIANT que contém um valor do tipo OBJECT.
Criar uma tabela que contenha colunas dos tipos OBJECT e VARIANT.
CREATE TABLE objects_1 (id INTEGER, object1 OBJECT, variant1 VARIANT);Valores INSERT:
INSERT INTO objects_1 (id, object1, variant1) SELECT 1, OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3), TO_VARIANT(OBJECT_CONSTRUCT('a', 1, 'b', 2, 'c', 3)) ;Recuperar as chaves tanto de OBJECT como de VARIANT:
SELECT OBJECT_KEYS(object1), OBJECT_KEYS(variant1) FROM objects_1 ORDER BY id; +----------------------+-----------------------+ | OBJECT_KEYS(OBJECT1) | OBJECT_KEYS(VARIANT1) | |----------------------+-----------------------| | [ | [ | | "a", | "a", | | "b", | "b", | | "c" | "c" | | ] | ] | +----------------------+-----------------------+
Exemplo de objetos aninhados¶
Este exemplo mostra que se o objeto contém objetos aninhados, apenas as chaves do nível mais alto são retornadas.
SELECT OBJECT_KEYS ( PARSE_JSON ( '{ "level_1_A": { "level_2": "two" }, "level_1_B": "one" }' ) ) AS keys ORDER BY 1; +----------------+ | KEYS | |----------------| | [ | | "level_1_A", | | "level_1_B" | | ] | +----------------+