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 |
| 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 |
Note que como Z é a última letra, não é necessário usar um limite superior.