- Categorias:
Funções de dados semiestruturados e estruturados (Matriz/objeto)
ARRAY_CONTAINS¶
Retorna TRUE se o valor especificado for encontrado na matriz especificada.
Sintaxe¶
Argumentos¶
value_exprValor a ser encontrado em
array.Se
arrayfor um matriz semiestruturada,value_exprdeve ser avaliado como um VARIANT.Se
arrayfor uma matriz estruturada,value_exprdeve ser avaliada como um tipo comparável ao tipo da matriz.
arrayA matriz a ser pesquisada.
Retornos¶
Esta função retorna um valor do tipo BOOLEAN ou NULL:
A função retorna TRUE se
value_exprestiver presente emarray, incluindo os seguintes casos:Quando o argumento
value_exprfor NULL e houver um valor SQL NULL na matriz (undefined).Quando o argumento
value_exprfor JSON nulo e houver um valor JSON nulo na matriz (null).
A função retorna FALSE se
value_exprnão estiver presente emarray, inclusive quando o argumentovalue_exprfor JSON nulo e não houver valores JSON nulos na matriz.A função retorna NULL se o argumento
value_exprfor NULL e não houver valores SQL NULL na matriz.
Para obter mais informações sobre valores NULL em matrizes, consulte Valores NULL.
Notas de uso¶
A função não oferece suporte a curingas em
value_expr. No entanto, você pode usar a função ARRAY_TO_STRING para converter uma matriz em uma cadeia de caracteres e, em seguida, pesquisar a cadeia de caracteres com caracteres curinga. Por exemplo, você pode especificar curingas para pesquisar a cadeia de caracteres retornada usando as funções [ NOT ] LIKE e REGEXP_LIKE.Se
arrayfor uma matriz semiestruturada, a conversão explícita do valorvalue_exprpara um valor VARIANT será necessária para os valores dos seguintes tipos de dados:O exemplo a seguir converte explicitamente um valor de cadeia de caracteres em um valor de VARIANT:
A conversão explícita não é necessária para valores de outros tipos de dados.
Exemplos¶
As consultas a seguir usam a função ARRAY_CONTAINS em uma lista SELECT.
Neste exemplo, a função retorna TRUE porque o argumento value_expr é 'hello' e a matriz contém um valor VARIANT que armazena a cadeia de caracteres 'hello':
Neste exemplo, a função retorna FALSE porque o argumento value_expr é 'hello', mas a matriz não contém um valor VARIANT que armazene a cadeia de caracteres 'hello':
Neste exemplo, a função retorna NULL porque o argumento value_expr é NULL, mas a matriz não contém um valor SQL NULL:
Neste exemplo, a função retorna TRUE porque o argumento value_expr é NULL e a matriz contém um valor SQL NULL:
Neste exemplo, a função retorna TRUE porque o argumento value_expr é um valor nulo JSON e a matriz contém um valor JSON nulo:
Neste exemplo, a função retorna NULL porque o argumento value_expr é NULL, mas a matriz não contém um valor SQL NULL (embora contenha um valor nulo JSON):
A consulta a seguir usa a função ARRAY_CONTAINS em uma cláusula WHERE. Primeiro, crie uma tabela com uma coluna ARRAY e insira os dados:
Execute uma consulta que especifique o valor a ser encontrado para value_expr e a coluna ARRAY para array: