Función JSON_ARRAY_LENGTH
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_ARRAY_LENGTH, le recomendamos que analice las cadenas JSON con Función JSON_PARSE para obtener un valor SUPER. A continuación, use Función get_array_length para obtener la longitud de la matriz.
La función JSON_ARRAY_LENGTH devuelve la cantidad de elementos en la matriz exterior de una cadena JSON. 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_ARRAY_LENGTH('json_array' [, null_if_invalid ] )
Argumentos
- json_array
-
Una matriz JSON con formato adecuado.
- 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
INTEGER
Ejemplos
Para devolver la cantidad de elementos en la matriz, use el siguiente ejemplo.
SELECT JSON_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14]');
+-------------------+ | json_array_length | +-------------------+ | 5 | +-------------------+
Para devolver un error porque la cadena JSON no es válida, use el siguiente ejemplo.
SELECT JSON_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14');
ERROR: invalid json array object [11,12,13,{"f1":21,"f2":[25,26]},14
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_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14',true);
+-------------------+ | json_array_length | +-------------------+ | NULL | +-------------------+