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 seNULL
será ou não retornado caso a string de entrada JSON seja inválida, em vez de retornar um erro. Para retornarNULL
se JSON for inválido, especifiquetrue
(t
). Para retornar um erro se JSON for inválido, especifiquefalse
(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 |
+-------------------+