Skip to content

Correspondência de padrões em consultas SQL

3 de maio de 2021

A correspondência de padrões SQL permite que você pesquise padrões nos dados se você não souber a palavra ou frase exata que está procurando. Esse tipo de consulta SQL usa caracteres curinga para corresponder a um padrão, em vez de especificá-lo exatamente. Por exemplo, você pode usar o caractere curinga “C%” para corresponder a qualquer string que comece com D maiúsculo.

Kate Ter Haar / Flickr / CC por 2.0

Usando o Operador LIKE

Para usar uma expressão curinga em uma consulta SQL, use o operador LIKE em uma cláusula WHERE e coloque o padrão entre aspas simples.

Usando o% curinga para realizar uma pesquisa simples

Para pesquisar qualquer funcionário em seu banco de dados com um sobrenome começando com a letra C, use a seguinte instrução Transact-SQL: SELECT *
DE funcionários
ONDE last_name LIKE ‘C%’

Omitindo padrões usando a palavra-chave NOT

Use a palavra-chave NOT para selecionar registros que não correspondem ao padrão. Por exemplo, esta consulta retorna todos os registros cujo último nome faz não comece com C: SELECT *
DE funcionários
ONDE o last_name NÃO É ‘C%’

Combinando um padrão em qualquer lugar usando o caractere curinga% duas vezes

Use duas instâncias do % curinga para corresponder a um padrão específico em qualquer lugar. Este exemplo retorna todos os registros que contêm um C em qualquer lugar no sobrenome: SELECT *
DE funcionários
ONDE last_name LIKE ‘% C%’

Encontrar uma correspondência de padrão em uma posição específica

Use o _ curinga para retornar dados em um local específico. Este exemplo corresponde apenas se C ocorrer na terceira posição da coluna do sobrenome: SELECT *
DE funcionários
ONDE last_name LIKE ‘_ _C%’

Expressões curinga com suporte no Transact SQL

Existem várias expressões curinga compatíveis com Transact SQL:

  • O % curinga corresponde a zero ou mais caracteres de qualquer tipo e pode ser usado para definir curingas antes e depois do padrão. Se você está familiarizado com a correspondência de padrões do DOS, é o equivalente ao caractere curinga * nessa sintaxe.
  • O _ curinga corresponde exatamente a um caractere de qualquer tipo. É o equivalente do ? curinga na correspondência de padrões do DOS.
  • Especifique uma lista de caracteres colocando-os entre colchetes. Por exemplo, o curinga [aeiou] corresponde a qualquer vogal.
  • Especifique um intervalo de caracteres colocando o intervalo entre colchetes. Por exemplo, o curinga [a-m] corresponde a qualquer letra da primeira metade do alfabeto.
  • Negue um intervalo de caracteres incluindo o caractere de circunflexo imediatamente dentro do colchete de abertura. Por exemplo, [^aeiou] corresponde a qualquer caractere não-vogal enquanto [^a-m] corresponde a qualquer caractere que não esteja na primeira metade do alfabeto.

Combinando curingas para padrões complexos

Combine esses curingas em padrões complexos para realizar consultas mais avançadas. Por exemplo, suponha que você precise construir uma lista de todos os seus funcionários que têm nomes que começam com uma letra da primeira metade do alfabeto, mas têm não termine com uma vogal. Você pode usar a seguinte consulta: SELECT *
DE funcionários
ONDE last_name LIKE ‘[a-m]%[^aeiou]’

Da mesma forma, você pode construir uma lista de todos os funcionários com sobrenomes consistindo em exatamente quatro caracteres usando quatro instâncias do _ padrão: SELECT *
DE funcionários
ONDE last_name LIKE ‘____’

Como você pode ver, o uso de recursos de correspondência de padrões SQL oferece aos usuários de banco de dados a capacidade de ir além de simples consultas de texto e executar operações de pesquisa avançadas.