Função JSON_ARRAY_LENGTH - Amazon Redshift

Função JSON_ARRAY_LENGTH

nota

O JSON_PARSE e suas funções associadas analisam os valores JSON como SUPER, que o Amazon Redshift analisa com maior eficiência do que o VARCHAR.

Em vez de usar JSON_ARRAY_LENGTH, recomendamos que você analise suas strings JSON usando o Função JSON_PARSE para ter um valor SUPER. Depois, use o função get_array_length para ter o comprimento da matriz.

A função JSON_ARRAY_LENGTH retorna o número de elementos no array externo de uma string JSON. Se o argumento null_if_invalid for definido como true e a string JSON for inválida, a função retornará NULL, em vez de retornar um erro.

Para ter mais informações, consulte Funções JSON.

Sintaxe

JSON_ARRAY_LENGTH('json_array' [, null_if_invalid ] )

Argumentos

json_array

Uma matriz JSON adequadamente formatada.

null_if_invalid

(Opcional) Um valor BOOLEAN que especifica se NULL será ou não retornado caso a string de entrada JSON seja inválida, em vez de retornar um erro. Para retornar NULL se JSON for inválido, especifique true (t). Para retornar um erro se JSON for inválido, especifique false (f). O padrão é false.

Tipo de retorno

INTEGER

Exemplos

Para retornar o número de elementos na matriz, use o exemplo a seguir.

SELECT JSON_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14]'); +-------------------+ | json_array_length | +-------------------+ | 5 | +-------------------+

Para retornar um erro porque JSON é inválido, use o exemplo a seguir.

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 definir null_if_invalid como true a fim de que a instrução retorne NULL, em vez de retornar um erro para o JSON inválido, use o exemplo a seguir.

SELECT JSON_ARRAY_LENGTH('[11,12,13,{"f1":21,"f2":[25,26]},14',true); +-------------------+ | json_array_length | +-------------------+ | NULL | +-------------------+