Función JSON_EXTRACT_ARRAY_ELEMENT_TEXT
nota
JSON_PARSE y sus funciones asociadas analizan los valores JSON como SUPER, que Amazon Redshift analiza de forma más eficiente que VARCHAR.
En lugar de usar JSON_EXTRACT_ARRAY_ELEMENT_TEXT, le recomendamos que analice las cadenas JSON con Función JSON_PARSE para obtener un valor SUPER. A continuación, consulte el elemento que desee utilizando su índice de matriz, con la sintaxis de value[element position]
. Para obtener más información sobre cómo consultar los elementos de una matriz en valores SUPER, vaya a Consulta de datos semiestructurados.
La función JSON_EXTRACT_ARRAY_ELEMENT_TEXT devuelve un elemento de la matriz JSON en la matriz extrema de una cadena JSON utilizando un índice basado en cero. El primer elemento en una matriz está en posición 0. Si el índice es negativo o está fuera de límite, JSON_EXTRACT_ARRAY_ELEMENT_TEXT devuelve una cadena vacía. Si el argumento null_if_invalid está establecido en true
y la cadena JSON no es válida, la función devuelve NULL
en lugar de un error.
Para obtener más información, consulte Funciones JSON.
Sintaxis
JSON_EXTRACT_ARRAY_ELEMENT_TEXT('json string', pos [, null_if_invalid ] )
Argumentos
- json_string
-
Una cadena JSON con formato adecuado.
- pos
-
Un valor
INTEGER
que representa el índice del elemento de matriz que se devolverá, utilizando un índice de matriz basado en cero.
- null_if_invalid
-
(Opcional) Un valor
BOOLEAN
que especifica que se devuelvaNULL
si la cadena JSON de entrada no es válida en lugar de devolver un error. Para devolverNULL
si la cadena JSON no es válida, especifiquetrue
(t
). Para devolver un error si la cadena JSON no es válida, especifiquefalse
(f
). El valor predeterminado esfalse
.
Tipo de retorno
VARCHAR
-
Una cadena
VARCHAR
que representa el elemento de matriz JSON al que se hace referencia en pos.
Ejemplos
Para devolver el elemento de matriz en la posición 2, que es el tercer elemento de un índice de matriz basado en cero, use el siguiente ejemplo.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('[111,112,113]', 2);
+---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | 113 | +---------------------------------+
Para devolver un error porque la cadena JSON no es válida, use el siguiente ejemplo.
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,]]]
Para establecer null_if_invalid en true, para que la instrucción devuelva NULL
en lugar de devolver un error para indicar que la cadena JSON no es válida, use el siguiente ejemplo.
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1,true);
+---------------------------------+ | json_extract_array_element_text | +---------------------------------+ | NULL | +---------------------------------+