SQL エディタでクエリを入力するとき または計算を作成するとき 、Presto SQL 構文 を使用します。JavaScript Object Notation(JSON)の配列や値を調整するには、以下の一般的な関数が便利です。
JSON_ARRAY_LENGTH
JSON配列の値の数、つまり長さを返すには、以下のようなJSON_ARRAY_LENGTH関数を使用します:
json_array_length(json) → bigint
例えば、SELECT json_array_length('[a, b, c]'; は、3 の長さを返します。
JSON_ARRAY_GET
ゼロベースのインデックスに基づいてJSON配列の値を返却するには、JSON_ARRAY_GET 関数を使用します:
json_array_get(json_array, index) → json
例:
-
SELECT json_array_get('["a", "b", "c"]', 0);は'a'を返します -
SELECT json_array_get('["a", "b", "c"]', 1);は'b'を返します
配列の端 からインデックスされた値を返却するには、負のインデックスを使用することができます。例:
-
SELECT json_array_get('["c", "b", "a"]', -1);は'a'を返します -
SELECT json_array_get('["c", "b", "a"]', -2);は'b'を返します
指定されたインデックスに 要素が存在しない場合、関数はnull を返却する。例:
-
SELECT json_array_get('[]', 0);はnullを返します -
SELECT json_array_get('["a", "b", "c"]', 10);はnullを返します -
SELECT json_array_get('["c", "b", "a"]', -10);はnullを返します
JSON_EXTRACT
JSONを含む文字列のJSONPathライクな式を評価し、結果をJSONとしてエンコードされた文字列として返却するには、JSON_EXTRACT 関数を次のように使用する:
json_extract(json, json_path) → json
例:
SELECT json_extract(json, '$.store.book');
注: JSONとしてエンコードされていない文字列として結果を返すには、JSON_EXTRACT_SCALAR関数を代わりに使用します。
JSON_EXTRACT_SCALAR
JSONを含み、スカラー(テキスト、ブーリアン型、数値)を参照する文字列のJSONPathライクな式を評価し、結果を文字列として返却するには、JSON_EXTRACT_SCALAR 関数を使用します:
json_extract_scalar(json, json_path) → varchar
例:
SELECT json_extract_scalar(json, '$.store.book[0].author');
SELECT json_extract_scalar('[1, 2, 3]', '$[2]'); メモ: JSONとしてエンコードされた文字列として結果を返却するには、代わりにJSON_EXTRACT 関数を使用します。
JSON_FORMAT
JSON構文の値を文字列として返すには、JSON_FORMAT関数を使用します:
json_format(json) → varchar
例:
-
SELECT json_format(json '[1, 2, 3]');'[1, 2, 3]'を返却する。 -
SELECT json_format(json '"a"');'"a"' を返却する。
ヒント: JSON_FORMAT 関数は、JSON_PARSE 関数の逆関数です。
JSON_PARSE
文字列をJSON構文として解析するには、JSON_PARSE関数を使用します:
json_parse(string) → json
例えば、SELECT json_parse('[1, 2, 3]'); はJSON '[1, 2, 3]' を返却します。
ヒント: JSON_PARSE 関数は、JSON_FORMAT 関数の逆関数です。
W_JSON_ARRAY_JOIN
JSON配列の値を区切り文字列として返却するには、W_JSON_ARRAY_JOIN関数を使用します: