Når du skriver inn spørringen din i SQL Editor eller oppretter en beregning, bruker du Presto SQL-syntaks. Disse vanlige funksjonene kan være nyttige når du skal justere matriser og verdier i JavaScript Object Notation (JSON).
JSON_ARRAY_LENGDE
For å returnere antall verdier - eller length - i en JSON-array, bruker du JSON_ARRAY_LENGTH -funksjonen, for eksempel:
json_array_length(json) → bigint
For eksempel, SELECT json_array_length('[a, b, c]'); returnerer en lengde på 3.
JSON_ARRAY_GET
For å returnere en verdi av en JSON-array basert på en nullbasert indeks, bruker du funksjonen JSON_ARRAY_GET, for eksempel:
json_array_get(json_array, index) → json
For eksempel:
-
SELECT json_array_get('["a", "b", "c"]', 0);returnerer'a' -
SELECT json_array_get('["a", "b", "c"]', 1);returnerer'b'
For å returnere verdier indeksert fra slutten av matrisen, kan du bruke negative indekser. For eksempel:
-
SELECT json_array_get('["c", "b", "a"]', -1);returnerer'a' -
SELECT json_array_get('["c", "b", "a"]', -2);returnerer'b'
Hvis ikke finnes noe element på den angitte indeksen, returnerer funksjonen null. For eksempel:
-
SELECT json_array_get('[]', 0);returnerernull -
SELECT json_array_get('["a", "b", "c"]', 10);returnerernull -
SELECT json_array_get('["c", "b", "a"]', -10);returnerernull
JSON_EXTRACT
For å evaluere det JSONPath-lignende uttrykket av en streng som inneholder JSON og returnere resultatet som en streng kodet som JSON, bruker du funksjonen JSON_EXTRACT, for eksempel:
json_extract(json, json_path) → json
For eksempel:
SELECT json_extract(json, '$.store.book');
Merk: Hvis du vil returnere resultatene som en streng ikke kodet som JSON, bruker du JSON_EXTRACT_SCALAR -funksjonen i stedet.
JSON_EXTRACT_SCALAR
For å evaluere det JSONPath-lignende uttrykket av en streng som inneholder JSON og refererer til en skalarverdi - tekst, boolsk eller tall - og returnere resultatene som en streng, bruker du funksjonen JSON_EXTRACT_SCALAR, for eksempel:
json_extract_scalar(json, json_path) → varchar
For eksempel:
SELECT json_extract_scalar(json, '$.store.book[0].author');
SELECT json_extract_scalar('[1, 2, 3]', '$[2]'); Merk: Hvis du vil returnere resultatene som en streng kodet som JSON, bruker du funksjonen JSON_EXTRACT i stedet.
JSON_FORMAT
For å returnere verdiene til JSON-syntaksen som en streng, bruker du funksjonen JSON_FORMAT, for eksempel:
json_format(json) → varchar
For eksempel:
-
SELECT json_format(json '[1, 2, 3]');returnerer'[1, 2, 3]' -
SELECT json_format(json '"a"');returnerer'"a"'
Tips: Funksjonen JSON_FORMAT er den inverse av funksjonen JSON_PARSE.
JSON_PARSE
For å analysere en streng som JSON-syntaks bruker du funksjonen JSON_PARSE, for eksempel:
json_parse(string) → json
For eksempel SELECT json_parse('[1, 2, 3]'); returnerer JSON '[1, 2, 3]'
Tips: Funksjonen JSON_PARSE er den inverse av funksjonen JSON_FORMAT.
W_JSON_ARRAY_JOIN
For å returnere verdiene i en JSON-array som en avgrenset streng, bruker du funksjonen W_JSON_ARRAY_JOIN, for eksempel:
w_json_array_join(array, 'delimiter') → varchar