SQL – Cláusula BETWEEN

No SQL podemos utilizar uma cláusula muito útil para filtrar consultas, conhecida como BETWEEN. Algo como (entre dois valores).

Basicamente você informa que deseja recuperar todos os valores que estejam numa faixa de valores entre dois pontos. Calma, com exemplo fica mais fácil de entender.

Digamos que você queira recuperar todos os registros cujo valor esteja entre a e c, ou seja, todos os registros que contém b.

mysql> SELECT 1 BETWEEN 2 AND 3;
-> 0
mysql> SELECT 'b' BETWEEN 'a' AND 'c';
-> 1
mysql> SELECT 2 BETWEEN 2 AND '3';
-> 1
mysql> SELECT 2 BETWEEN 2 AND 'x-3';
-> 0

Para ter bons resultados usando o BETWEEN com datas ou valores time, é interessante fazer o CAST() dos valores. Por exemplo:

Se você comparar um DATETIME com dois valores DATE, converta o valor de DATE para DATETIME. Se estiver usando strings como ‘2001-1-1‘ na comparação com DATE, então faça o CAST de string para DATE.

Também é possível fazer o avesso, usar o atributo NOT para BETWEEN, para trazer apenas resultados que não estejam entre os valores inicial e final.

SELECT nome_campo FROM nome_tabela WHERE nome_campo NOT BETWEEN 'a' AND 'c';

Essa cláusula é muito útil quando você precisa fazer um filtro de valores contendo mais de dois valores.

Agora é com você! Use com moderação.

Sucesso!



Sobre o Autor

MarioSAM é faixa preta 2Dan de Taekwondo. Entusiasta do marketing online. Especulador do mercado financeiro. Projetista web com certificação SCJP da SUN. Com 10 anos de experiência em desenvolvimento de sistemas.