Olá pessoal, voltamos com nosso curso básico de SQL Server e neste artigo, veremos o uso da cláusula WHERE em conjunto com os operadores LIKE e NOT LIKE.

WHERE com LIKE

O operador LIKE é empregado nas situações em que usamos como base para realizar pesquisas (ou filtros) as colunas que estão no formato caractere, como as colunas NOMEPRODUTO e TIPOPRODUTO, de nossa tabela de Produtos.

Por exemplo, podemos usar esse operador para obter como resultado todos os produtos cuja primeira letra seja C. Para que isso aconteça, devemos executar a seguinte instrução presente na Figura 1.

Todos os produtos com a letra C
Figura 1. Todos os produtos com a letra C

Que nos resultará na Figura 2.

Resultado da instrução
Figura 2. Resultado da instrução

Como desejamos determinar apenas a letra inicial da palavra a fim de obter o resultado, devemos utilizar o caractere % para representar que quaisquer outros caracteres podem estar contidos na palavra, desde que ela se inicie com a letra C. Sendo assim, o % representa um caractere coringa.

Vale destacar que não é apenas o primeiro caractere que pode ser determinado para uma consulta. Veja o comando da Figura 3, no qual desejamos obter como resultado todos os nomes de produtos cujo caractere inicial seja C e que contenha o caractere D em qualquer posição na palavra.

Nova instrução
Figura 3. Nova instrução

O resultado é apresentado na Figura 4.

Resultado da nova instrução
Figura 4. Resultado da nova instrução

Também podemos obter como resultado as palavras que contenham um determinado caractere em qualquer posição. O comando descrito na Figura 5 retornará como resultado todos os produtos contenham o caractere C em qualquer posição.

Todos os produtos contenham C em qualquer posição
Figura 5. Todos os produtos contenham C em qualquer posição

O resultado é apresentado na Figura 6.

Resultado
Figura 6. Resultado

Além destes tipos de consulta descritos, o operador LIKE também permite consultar nomes de produtos que contenham uma determinada sílaba. Por exemplo, para realizar uma consulta obtendo como resultado os nomes dos produtos que contenham a sílaba 'or', basta executarem a instrução da Figura 7.

Instrução com a sílaba or
Figura 7. Instrução com a sílaba or

Com essa instrução, teremos os resultados da Figura 8.

Resultado da instrução
Figura 8. Resultado da instrução

Podemos restringir ainda mais esta consulta determinando não apenas uma sílaba que deve estar presente nos nomes dos produtos, mas também outra que deve estar presente no tipo de produto. Vejamos o comando descrito na Figura 9, no qual desejamos obter como resultado da consulta os produtos cujos nomes possuam a sílaba 'or' e os tipos que possuam a sílaba 'ti'.

Instrução com a sílaba or e os tipos que possuam ti
Figura 9. Instrução com a sílaba or e os tipos que possuam ti

Com essa instrução, teremos os resultados da Figura 10.

Resultado da instrução
Figura 10. Resultado da instrução

Com isso, podemos concluir que o operador LIKE em conjunto da cláusula WHERE é muito útil quando queremos realizar filtros diversos em consultas.

WHERE com NOT LIKE

Os operadores NOT LIKE são usados de forma oposta ao operador LIKE. Com eles obtemos o resultado de uma consulta os nomes e tipos de produtos que não possuem tais caracteres ou sílabas determinadas neste filtro.

Para ficar clara a diferença entre os operadores, usaremos os mesmos exemplos que usamos acima, mas agora a fim de explicar a finalidade dos operadores NOT LIKE, como mostra a Figura 11.

NOT LIKE
Figura 11. NOT LIKE

Com essa instrução, teremos os resultados da Figura 12.

Resultado da instrução
Figura 12. Resultado da instrução

Assim como o operador LIKE, o NOT LIKE também permite que mais de um caractere seja usado para uma consulta. Veja o comando descrito na Figura 13, no qual desejamos obter como resultado todos os nomes de produtos cujo caractere inicial não seja C e que não contenha o caractere D em qualquer outra posição da palavra.

Nova instrução
Figura 13. Nova instrução

O resultado pode ser visto na Figura 14.

Resultado da nova instrução
Figura 14. Resultado da nova instrução

Também podemos obter como resultado as palavras que não contenham um determinado caractere em qualquer posição. O comando descrito na Figura 15 retornará como resultado todos os produtos cujos nomes não contenham o caractere E em qualquer posição. O resultado pode ser visto na Figura 16.

Instrução onde todos os produtos cujos nomes não contenham o caractere E
Figura 15. Instrução onde todos os produtos cujos nomes não contenham o caractere E
Instrução onde todos os produtos cujos nomes não contenham o caractere E
Figura 16. Instrução onde todos os produtos cujos nomes não contenham o caractere E

Como feito anteriormente, com o operador NOT LIKE podemos restringir ainda mais nossa consulta, determinando uma sílaba que não deve estar presente no nome dos produtos e também uma sílaba que não deve estar presente no tipo do produto. O comando da Figura 17 nos permite obter como resultado (Figura 18) os produtos cujos nomes não possuem a sílaba 'or' e os tipos que não possuem a sílaba 'ti'.

Instrução onde os produtos tenham nomes e não possuem a sílaba or e os tipos que não possuem a sílaba ti
Figura 17. Instrução onde os produtos tenham nomes e não possuem a sílaba or e os tipos que não possuem a sílaba ti
Resultado da última instrução
Figura 18. Resultado da última instrução

Assim terminamos nossos exemplos com o uso dos operadores LIKE e NOT LIKE. Fica a dica para que treinem outros exemplos com o uso destes operadores em conjunto com a cláusula WHERE.