Función JSON_EXTRACT_ARRAY_ELEMENT_TEXT - Amazon Redshift

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 devuelva NULL si la cadena JSON de entrada no es válida en lugar de devolver un error. Para devolver NULL si la cadena JSON no es válida, especifique true (t). Para devolver un error si la cadena JSON no es válida, especifique false (f). El valor predeterminado es false.

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 | +---------------------------------+