Categorias:

Funções de cadeia de caracteres e binários (Correspondência/Comparação)

CONTAINS

Retorna True se expr1 contiver expr2. Ambas as expressões devem ser de texto ou expressões binárias.

Dica

Você pode usar o serviço de otimização de pesquisa para melhorar o desempenho de consultas que chamam essa função. Para obter mais detalhes, consulte Serviço de otimização de pesquisa.

Sintaxe

CONTAINS( <expr1> , <expr2> )
Copy

Argumentos

expr1

A cadeia de caracteres a ser pesquisada.

expr2

A cadeia de caracteres a ser procurada.

Retornos

Retorna um BOOLEAN ou NULL:

  • Retorna TRUE se expr2 for encontrado dentro de expr1.

  • Retorna FALSE se expr2 não for encontrado dentro de expr1.

  • Retorna NULL se qualquer uma das expressões de entrada for NULL.

Notas de uso

Para comparações que correspondem a uma cadeia de caracteres com mais de um padrão especificado, você pode usar as seguintes funções:

Detalhes do agrupamento

The collation specifications of all input arguments must be compatible.

Esta função não oferece suporte às seguintes especificações de agrupamento:

  • pi (não identifica pontuação).

  • cs-ai (diferencia maiúsculas e minúsculas, não identifica acentos).

Exemplos

Esses exemplos usam a função CONTAINS.

Como determinar se os valores da coluna contêm uma cadeia de caracteres

Crie uma tabela com uma única coluna que contenha valores de cadeia de caracteres.

CREATE OR REPLACE TABLE strings_test (s VARCHAR);

INSERT INTO strings_test values
  ('coffee'),
  ('ice tea'),
  ('latte'),
  ('tea'),
  (NULL);

SELECT * from strings_test;
Copy
+---------+
| S       |
|---------|
| coffee  |
| ice tea |
| latte   |
| tea     |
| NULL    |
+---------+

Determine se os valores na coluna s contêm a cadeia de caracteres te:

SELECT * FROM strings_test WHERE CONTAINS(s, 'te');
Copy
+---------+
| S       |
|---------|
| ice tea |
| latte   |
| tea     |
+---------+

Como usar CONTAINS com agrupamento

No exemplo a seguir, CONTAINS retorna resultados diferentes para os mesmos valores de argumento com diferentes especificações de agrupamento.

SELECT CONTAINS(COLLATE('ñ', 'en-ci-ai'), 'n'),
       CONTAINS(COLLATE('ñ', 'es-ci-ai'), 'n');
Copy
+-----------------------------------------+-----------------------------------------+
| CONTAINS(COLLATE('Ñ', 'EN-CI-AI'), 'N') | CONTAINS(COLLATE('Ñ', 'ES-CI-AI'), 'N') |
|-----------------------------------------+-----------------------------------------|
| True                                    | False                                   |
+-----------------------------------------+-----------------------------------------+