Kiedy wprowadzasz zapytanie w Edytorze SQL lub tworzysz kalkulację, używasz składni Presto SQL. Aby dostosować tablice i wartości JavaScript Object Notation (JSON), możesz uznać te typowe funkcje za przydatne.
JSON_ARRAY_LENGTH
Aby zwrócić liczbę wartości - lub długość - tablicy JSON, użyj funkcji JSON_ARRAY_LENGTH, np:
json_array_length(json) → bigint
Na przykład, SELECT json_array_length('[a, b, c]'); zwraca długość 3.
JSON_ARRAY_GET
Aby zwrócić wartość tablicy JSON opartą na indeksie zerowym, użyj funkcji JSON_ARRAY_GET, np:
json_array_get(json_array, index) → json
Na przykład:
-
SELECT json_array_get('["a", "b", "c"]', 0);zwraca'a' -
SELECT json_array_get('["a", "b", "c"]', 1);zwraca'b'
Aby zwrócić wartości indeksowane od końca tablicy, możesz użyć indeksów ujemnych. Na przykład:
-
SELECT json_array_get('["c", "b", "a"]', -1);zwraca'a' -
SELECT json_array_get('["c", "b", "a"]', -2);zwraca'b'
Jeśli żaden element nie istnieje przy określonym indeksie, funkcja zwraca null. Na przykład:
-
SELECT json_array_get('[]', 0);zwracanull -
SELECT json_array_get('["a", "b", "c"]', 10);zwracanull -
SELECT json_array_get('["c", "b", "a"]', -10);zwracanull
JSON_EXTRACT
Aby ocenić wyrażenie podobne do JSONPath łańcucha zawierającego JSON i zwrócić wyniki w postaci łańcucha zakodowanego jako JSON, użyj funkcji JSON_EXTRACT, np:
json_extract(json, json_path) → json
Na przykład:
SELECT json_extract(json, '$.store.book');
Uwaga: Aby zwrócić wyniki jako ciąg znaków nie zakodowany jako JSON, użyj zamiast tego funkcji JSON_EXTRACT_SCALAR.
JSON_EXTRACT_SCALAR
Aby ocenić podobne do JSONPath wyrażenie ciągu znaków, które zawiera JSON i odwołuje się do wartości skalarnej - tekstowej, logicznej lub liczbowej - i zwrócić wyniki jako ciąg znaków, użyj funkcji JSON_EXTRACT_SCALAR, takiej jak:
json_extract_scalar(json, json_path) → varchar
Na przykład:
SELECT json_extract_scalar(json, '$.store.book[0].author');
SELECT json_extract_scalar('[1, 2, 3]', '$[2]'); Uwaga: Aby zwrócić wyniki jako ciąg zakodowany jako JSON, użyj funkcji JSON_EXTRACT.
JSON_FORMAT
Aby zwrócić wartości składni JSON jako ciąg znaków, użyj funkcji JSON_FORMAT, np:
json_format(json) → varchar
Na przykład:
-
SELECT json_format(json '[1, 2, 3]');zwraca'[1, 2, 3]' -
SELECT json_format(json ''a'');zwraca''a''
Wskazówka: Funkcja JSON_FORMAT jest odwrotnością funkcji JSON_PARSE.
JSON_PARSE
Aby przeanalizować ciąg znaków jako składnię JSON, użyj funkcji JSON_PARSE, np:
json_parse(string) → json
Na przykład, SELECT json_parse('[1, 2, 3]'); zwraca JSON '[1, 2, 3]'
Wskazówka: Funkcja JSON_PARSE jest odwrotnością funkcji JSON_FORMAT.
W_JSON_ARRAY_JOIN
Aby zwrócić wartości tablicy JSON jako ograniczony ciąg znaków, użyj funkcji W_JSON_ARRAY_JOIN, np:
w_json_array_join(array, 'delimiter') → varchar