Quando você insere sua consulta no SQL Editor ou cria um cálculo, você usa sintaxe Presto SQL. Para ajustar as matrizes e os valores do JavaScript Object Notation (JSON), você pode achar essas funções comuns úteis.
JSON_ARRAY_LENGTH
Para retornar o número de valores - ou o comprimento - de uma matriz JSON, use a função JSON_ARRAY_LENGTH, como, por exemplo:
json_array_length(json) → bigint
Por exemplo, SELECT json_array_length('[a, b, c]'); retorna um comprimento de 3.
JSON_ARRAY_GET
Para retornar um valor de uma matriz JSON com base em um índice baseado em zero, use a função JSON_ARRAY_GET, como, por exemplo:
json_array_get(json_array, index) → json
Por exemplo:
-
SELECT json_array_get('["a", "b", "c"]', 0);retorna'a' -
SELECT json_array_get('["a", "b", "c"]', 1);retorna'b'
Para retornar valores indexados a partir do final da matriz, você pode usar índices negativos. Por exemplo:
-
SELECT json_array_get('["c", "b", "a"]', -1);retorna'a' -
SELECT json_array_get('["c", "b", "a"]', -2);retorna'b'
Se não houver nenhum elemento no índice especificado, a função retornará null. Por exemplo:
-
SELECT json_array_get('[]', 0);retornanull -
SELECT json_array_get('["a", "b", "c"]', 10);retornanull -
SELECT json_array_get('["c", "b", "a"]', -10);retornanull
JSON_EXTRACT
Para avaliar a expressão do tipo JSONPath da string que contém JSON e retornar os resultados como uma string codificada como JSON, use a função JSON_EXTRACT, como:
json_extract(json, json_path) → json
Por exemplo:
SELECT json_extract(json, '$.store.book');
Observação: Para retornar os resultados como uma cadeia de caracteres e não codificada como JSON, use a função JSON_EXTRACT_SCALAR.
JSON_EXTRACT_SCALAR
Para avaliar a expressão do tipo JSONPath da cadeia de caracteres que contém JSON e faz referência a um valor escalar - texto, booleano ou número - e retornar os resultados como uma cadeia de caracteres, use a função JSON_EXTRACT_SCALAR, como:
json_extract_scalar(json, json_path) → varchar
Por exemplo:
SELECT json_extract_scalar(json, '$.store.book[0].author');
SELECT json_extract_scalar('[1, 2, 3]', '$[2]'); Observação: Para retornar os resultados como uma cadeia de caracteres codificada como JSON, use a função JSON_EXTRACT.
JSON_FORMAT
Para retornar os valores da sintaxe JSON como uma cadeia de caracteres, use a função JSON_FORMAT, como:
json_format(json) → varchar
Por exemplo:
-
SELECT json_format(json '[1, 2, 3]');retorna'[1, 2, 3]' -
SELECT json_format(json '"a"');retorna'"a"'
Dica: A função JSON_FORMAT é o inverso da função JSON_PARSE.
JSON_PARSE
Para analisar uma cadeia de caracteres como sintaxe JSON, use a função JSON_PARSE, como:
json_parse(string) → json
Por exemplo, SELECT json_parse('[1, 2, 3]'); retorna JSON '[1, 2, 3]'
Dica: A função JSON_PARSE é o inverso da função JSON_FORMAT.
W_JSON_ARRAY_JOIN
Para retornar os valores de uma matriz JSON como uma cadeia de caracteres delimitada, use a função W_JSON_ARRAY_JOIN, como:
w_json_array_join(array, 'delimiter') → varchar