Cláusula LIKE e NOT LIKE – Filtrar resultados com padrões específicos no SQL Server
Quando realizamos uma consulta em uma tabela no Microsoft SQL Server, empregamos a cláusula WHERE para filtrar os registros que serão retornados. Porém, com a cláusula WHERE, só podemos aplicar filtros de correspondência exata de palavras. O que acontece se precisarmos aplicar um filtro que verifique palavras de forma parcial, como por exemplo palavras que se iniciem ou terminem com determinados caracteres, ou ainda que possuam sequências de caracteres específicas?
Neste caso, vamos usar a cláusula LIKE.
A cláusula LIKE determina se uma cadeia de caracteres (string) corresponde a um padrão especificado. Um padrão pode incluir caracteres normais e curingas.
Já a cláusula NOT LIKE inverte a comparação, verificando se a cadeia de caracteres NÃO corresponde ao padrão especificado.
Padrões específicos (metacaracteres)
Usamos diversos conjuntos de caracteres para especificar os padrões a serem filtrados pelas cláusulas LIKE e NOT LIKE. Por exemplo:
‘%’ — Qualquer cadeia de 0 ou mais caracteres
‘_’ — Sublinhado: qualquer caracter único
Exemplos:
1. Selecionar todos os registros da tabela tbl_livros cujo nome se inicie com a letra F:
SELECT * FROM tbl_livros WHERE Nome_Livro LIKE 'F%';
2. Selecionar todos os registros da tabela tbl_livros cujo nome não se inicie com a letra S:
SELECT * FROM tbl_livros WHERE Nome_Livro NOT LIKE 'S%';
3. Vamos retornar os nomes de livros da tabela tbl_livros cujo nome comece com uma letra qualquer do alfabeto, e a segunda letra seja a letra i:
SELECT Nome_Livro FROM tbl_livros WHERE Nome_Livro LIKE '_i%';
4. Consultar nomes de livros e seus respectivos preços, na tabela de livros, cujos nomes não comecem com a letra F e que custem mais de R$ 62,00:
SELECT Nome_Livro AS Livro, Preco_Livro AS Valor FROM tbl_livros WHERE Nome_Livro NOT LIKE 'F%' AND Preco_Livro > 62.00;
Assista a um vídeo onde explico em detalhes como usar as claúsulas LIKE e NOT LIKE no Microsoft SQL Server: