Quando inserisci la tua query nell'Editor SQL o crei un calcolo, utilizzi la sintassi Presto SQL. Per regolare gli array e i valori JavaScript Object Notation (JSON), puoi trovare utili queste funzioni comuni.
JSON_ARRAY_LENGTH
Per restituire il numero di valori - o la lunghezza - di un array JSON, usa la funzione JSON_ARRAY_LENGTH, ad esempio:
json_array_length(json) → bigint
Ad esempio, SELECT json_array_length('[a, b, c]'); restituisce una lunghezza di 3.
JSON_ARRAY_GET
Per restituire un valore di un array JSON basato su un indice nullo, usa la funzione JSON_ARRAY_GET, come ad esempio:
json_array_get(json_array, indice) → json
Ad esempio:
-
SELECT json_array_get('["a", "b", "c"]', 0);restituisce'a' -
SELECT json_array_get('["a", "b", "c"]', 1);restituisce'b'
Per restituire valori indicizzati dalla fine dell'array, puoi utilizzare indici negativi. Ad esempio:
-
SELECT json_array_get('["c", "b", "a"]', -1);restituisce'a' -
SELECT json_array_get('["c", "b", "a"]', -2);restituisce'b'
Se non esiste alcun elemento all'indice specificato, la funzione restituisce null. Ad esempio:
-
SELECT json_array_get('[]', 0);restituiscenull -
SELECT json_array_get('["a", "b", "c"]', 10);restituiscenull -
SELECT json_array_get('["c", "b", "a"]', -10);restituiscenull
JSON_EXTRACT
Per valutare l'espressione simile a JSONPath di una stringa che contiene JSON e restituire i risultati come stringa codificata come JSON, usa la funzione JSON_EXTRACT, ad esempio:
json_extract(json, json_path) → json
Ad esempio:
SELECT json_extract(json, '$.store.book');
Nota: Per restituire i risultati come una stringa non codificata come JSON, usa la funzione JSON_EXTRACT_SCALAR.
JSON_EXTRACT_SCALAR
Per valutare l'espressione simile a JSONPath di una stringa che contiene JSON e fa riferimento a un valore scalare (testo, booleano o numero) e restituire i risultati come stringa, usa la funzione JSON_EXTRACT_SCALAR, come ad esempio:
json_extract_scalar(json, json_path) → varchar
Ad esempio:
SELECT json_extract_scalar(json, '$.store.book[0].author');
SELECT json_extract_scalar('[1, 2, 3]', '$[2]'); Nota: Per restituire i risultati come una stringa codificata in JSON, usa la funzione JSON_EXTRACT.
JSON_FORMAT
Per restituire i valori della sintassi JSON come stringa, usa la funzione JSON_FORMAT, ad esempio:
json_format(json) → varchar
Ad esempio:
-
SELECT json_format(json '[1, 2, 3]');restituisce'[1, 2, 3]' -
SELECT json_format(json '"a"');restituisce'"a"'
Suggerimento: La funzione JSON_FORMAT è l'inversa della funzione JSON_PARSE.
JSON_PARSE
Per analizzare una stringa come sintassi JSON, usa la funzione JSON_PARSE, come ad esempio:
json_parse(stringa) → json
Ad esempio, SELECT json_parse('[1, 2, 3]'); restituisce JSON '[1, 2, 3]'
Suggerimento: La funzione JSON_PARSE è l'inverso della funzione JSON_FORMAT.
W_JSON_ARRAY_JOIN
Per restituire i valori di un array JSON come stringa delimitata, usa la funzione W_JSON_ARRAY_JOIN, come ad esempio:
w_json_array_join(array, 'delimiter') → varchar