- 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> )
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 deexpr1
.Retorna FALSE se
expr2
não for encontrado dentro deexpr1
.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;
+---------+
| 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');
+---------+
| 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');
+-----------------------------------------+-----------------------------------------+
| CONTAINS(COLLATE('Ñ', 'EN-CI-AI'), 'N') | CONTAINS(COLLATE('Ñ', 'ES-CI-AI'), 'N') |
|-----------------------------------------+-----------------------------------------|
| True | False |
+-----------------------------------------+-----------------------------------------+