JSON_EXTRACT_ARRAY_ELEMENT_TEXT 関数 - Amazon Redshift

JSON_EXTRACT_ARRAY_ELEMENT_TEXT 関数

注記

JSON_PARSE および関連する関数は、JSON 値を SUPER として解析します。Amazon Redshift は、VARCHAR よりも SUPER をより効率的に解析します。

JSON_EXTRACT_ARRAY_ELEMENT_TEXT を使用する代わりに、JSON_PARSE 関数 を使用して JSON 文字列を解析し、SUPER 値を取得することをお勧めします。次に、value[element position] 構文を使用し、必要とする配列インデックスが含まれている要素をクエリします。SUPER 値の配列要素に対するクエリ実行の詳細については、「半構造化データのクエリ」を参照してください。

JSON_EXTRACT_ARRAY_ELEMENT_TEXT 関数は、JSON 文字列の最外部の配列内の JSON 配列要素 (0 から始まるインデックスを使用) を返します。配列内の最初の要素の位置は 0 です。インデックスが負または範囲外である場合、JSON_EXTRACT_ARRAY_ELEMENT_TEXT は空の文字列を返します。null_if_invalid の引数が true に設定され、JSON 文字列が無効になっている場合、この関数はエラーを返す代わりに NULL を返します。

詳細については、「JSON 関数」を参照してください。

構文

JSON_EXTRACT_ARRAY_ELEMENT_TEXT('json string', pos [, null_if_invalid ] )

引数

json_string

正しくフォーマットされた JSON 文字列。

pos

返される配列要素のインデックスを表す INTEGER (0 から始まる配列インデックスを使用)。

null_if_invalid

(オプション) 入力 JSON 文字列が無効である場合に、エラーを返す代わりに NULL を返すかどうかを指定する BOOLEAN 値。JSON が無効な場合に NULL を返すには、true (t) を指定します。JSON が無効な場合にエラーを返すには、false (f) を指定します。デフォルト: false

戻り型

VARCHAR

pos によって参照される JSON 配列要素を表す VARCHAR 文字列。

配列の位置 2 の要素 (0 から始まる配列インデックスの 3 番目の要素) を返すには、次の例を使用します。

SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('[111,112,113]', 2); +---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | 113 | +---------------------------------+

JSON が無効であるためエラーを返すには、次の例を使用します。

SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1); ERROR: invalid json array object ["a",["b",1,["c",2,3,null,]]]

null_if_invalidtrue に設定し、ステートメントが無効な JSON のエラーを返す代わりに NULL を返すようにするには、次の例を使用します。

SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1,true); +---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | NULL | +---------------------------------+