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);
returns'a'
-
SELECT json_array_get('["a", "b", "c"]', 1);
returns'b'
配列の端 からインデックスを付けた値を返すには、負のインデックスを使うことができる。例:
-
SELECT json_array_get('["c", "b", "a"]', -1);
returns'a'
-
SELECT json_array_get('["c", "b", "a"]', -2);
returns'b'
指定されたインデックスに 要素が存在しない場合、関数はnull
を返す。例:
-
SELECT json_array_get('[]', 0;
returnsnull
-
SELECT json_array_get('["a", "b", "c"]', 10);
returnsnull
-
SELECT json_array_get('["c", "b", "a"]', -10);
returnsnull
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
関数を使用する:
w_json_array_join(array, 'delimiter') → varchar