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. Este tipo de SQL a consulta 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.
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:
SELECIONE *
DE funcionários
ONDE last_name LIKE 'C%'
Omitindo padrões usando a palavra-chave NOT
Use a palavra-chave NOT para selecionar os 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:
SELECIONE *
DE funcionários
ONDE o last_name NÃO É 'C%'
Correspondendo a 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:
SELECIONE *
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:
SELECIONE *
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ê estiver familiarizado com a correspondência de padrões 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 [sou] 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 cujos nomes 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:
SELECIONE *
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 de exatamente quatro caracteres usando quatro instâncias do _ padronizar:
SELECIONE *
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 realizar operações de pesquisa avançadas.