2.6. Usando os operadores de > e < para filtrar texto

Já aprendemos a lógica matemática que os operadores > e < servem para extrair subconjuntos de um total. Quando usamos ambos os operadores em uma consulta, eles oferecem a possiblidade de definir limites inferiores e superiores do subconjunto. Exemplo, a cláusula WHERE idade > 17 AND idade < 22 irá selecionas os registros de idade entre 18 e 21 anos. O mesmo poderia ser feito com os operadores >= (maior ou igual) e <= (menor ou igual) usando a cláusula WHERE idade >= 18 AND idade <=22.

Isso também é válido para datas, para poder selecionar todos os registros do ano de 2015 poderíamos usar a cláusula WHERE data >= ’01-01-2015’ AND data <’01-01-2016’. Note que para o limite superior valeria até o último segundo de 31/12/2015 23:59:59.

Pois bem, a novidade aqui é utilizar os operadores >, <, >= e <= com texto. A SQL interpreta que como os textos podem ser ordenados alfabeticamente, a letra F, por exemplo, é MENOR que a letra M. Segundo a mesma lógica, Marcelo é menor que Pedro, Azul é menor que Branco. Portanto, é possível usar os operadores citados para separar trechos de registros de um conjunto. Vamos a um exemplo para ficar mais claro.

C13 Quais são os alunos cujos nomes começam com a letra ‘M’?
SELECT Nome FROM ALUNO WHERE nome > "M" AND nome < "N"

Nome
Marcelo Correia Luz
Mariana Gonçalves Coelho
Resultado da consulta C32

C14 Quais são os alunos cujo nomes estão entre ‘M’ e ‘Z’, ordenados por nome?
SELECT * FROM ALUNO WHERE nome >= "M" ORDER BY nome

Nome
Marcelo Correia Luz
Mariana Gonçalves Coelho
Thiago Ferreira Borges
Resultado da consulta C33

Note que como Z é a última letra, não é necessário usar um limite superior.

Copyright © 2014 AIEC.