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_invalid を true に設定し、ステートメントが無効な JSON のエラーを返す代わりに NULL
を返すようにするには、次の例を使用します。
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1,true);
+---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | NULL | +---------------------------------+