Cuando introduce su consulta en el Editor SQL o crea un cálculo, utiliza sintaxis Presto SQL. Para ajustar matrices y valores de JavaScript Object Notation (JSON), puede que le resulten útiles estas funciones comunes.
JSON_ARRAY_LENGTH
Para devolver el número de valores - o la longitud - de una matriz JSON, utilice la función JSON_ARRAY_LENGTH
, como por ejemplo:
json_array_length(json) → bigint
Por ejemplo, SELECT json_array_length('[a, b, c]');
devuelve una longitud de 3
.
JSON_ARRAY_GET
Para devolver un valor de una matriz JSON basado en un índice de base cero, utilice la función JSON_ARRAY_GET
, por ejemplo:
json_array_get(json_array, índice) → json
Por ejemplo:
-
SELECT json_array_get('["a", "b", "c"]', 0);
devuelve'a'
-
SELECT json_array_get('["a", "b", "c"]', 1);
devuelve'b'
Para devolver valores indexados desde el extremo de la matriz, puede utilizar índices negativos. Por ejemplo:
-
SELECT json_array_get('["c", "b", "a"]', -1);
devuelve'a'
-
SELECT json_array_get('["c", "b", "a"]', -2);
devuelve'b'
Si no existe ningún elemento en el índice especificado, la función devuelve null
. Por ejemplo:
-
SELECT json_array_get('[]', 0);
devuelvenull
-
SELECT json_array_get('["a", "b", "c"]', 10);
devuelvenull
-
SELECT json_array_get('["c", "b", "a"]', -10);
devuelvenull
JSON_EXTRACT
Para evaluar la expresión de tipo JSONPath de una cadena que contiene JSON y devolver los resultados como una cadena codificada como JSON, utilice la función JSON_EXTRACT
, como:
json_extract(json, json_path) → json
Por ejemplo:
SELECT json_extract(json, '$.store.book');
Nota: Para devolver los resultados como una cadena no codificada como JSON, utilice en su lugar la función JSON_EXTRACT_SCALAR
.
JSON_EXTRACT_SCALAR
Para evaluar la expresión tipo JSONPath de cadena que contiene JSON y hace referencia a un valor escalar -texto, booleano o numérico-, y devolver los resultados como una cadena, utilice la función JSON_EXTRACT_SCALAR
, como:
json_extract_scalar(json, json_path) → varchar
Por ejemplo:
SELECT json_extract_scalar(json, '$.store.book[0].author');
SELECT json_extract_scalar('[1, 2, 3]', '$[2]');
Nota: Para devolver los resultados como una cadena codificada como JSON, utilice en su lugar la función JSON_EXTRACT
.
FORMATO JSON
Para devolver los valores de la sintaxis JSON en forma de cadena, utilice la función JSON_FORMAT
, por ejemplo:
json_format(json) → varchar
Por ejemplo:
-
SELECT json_format(json '[1, 2, 3]');
devuelve'[1, 2, 3]'
-
SELECT json_format(json '"a"');
devuelve'"a"'
Consejo: La función JSON_FORMAT
es la inversa de la función JSON_PARSE
.
JSON_PARSE
Para analizar una cadena como sintaxis JSON, utilice la función JSON_PARSE
, por ejemplo:
json_parse(cadena) → json
Por ejemplo, SELECT json_parse('[1, 2, 3]');
devuelve JSON '[1, 2, 3]'
Consejo: La función JSON_PARSE
es la inversa de la función JSON_FORMAT
.
W_JSON_ARRAY_JOIN
Para devolver los valores de una matriz JSON como una cadena delimitada, utilice la función W_JSON_ARRAY_JOIN
, como:
w_json_array_join(array, 'delimiter') → varchar