|
Às vezes, precisamos verificar se um valor ou expressão está entre dois outros valores.
Por exemplo, verificar se um número está entre dois outros números ou se uma data está entre duas outras datas.
Uma maneira de fazer isso é escrever duas cláusulas WHERE separadas:
SELECT *
FROM order
WHERE order_date <= TO_DATE('2018-12-31', 'YYYY-MM-DD')
AND order_date >= TO_DATE('2018-01-01', 'YYYY-MM-DD');
Isso encontrará pedidos com data de pedido entre 1º de janeiro e 31 de dezembro de 2018.
Existe uma maneira mais fácil de fazer isso: usando a palavra-chave BETWEEN.
A palavra-chave BETWEEN permite filtrar facilmente os dados que estão em um intervalo entre dois valores.
Se parece com isso:
WHERE expressão BETWEEN valor1 AND valor2
Isso verificará se sua expressão (por exemplo, uma coluna) está entre os dois valores mencionados.
Esses valores são inclusivos: se a expressão for igual ao valor, ela é incluída.
Portanto, para reescrever nossa consulta anterior usando BETWEEN, ficaria assim:
SELECT *
FROM order
WHERE order_date BETWEEN TO_DATE('2018-01-01', 'YYYY-MM-DD')
AND TO_DATE('2018-12-31', 'YYYY-MM-DD');
Acho que é mais fácil de ler e fica mais claro que você está verificando se um valor está entre duas datas, o que geralmente pode ser ignorado se
cláusulas WHERE separadas forem usadas.
Também pode ser usado com números.
SELECT *
FROM order
WHERE order_amount BETWEEN 100 AND 500;
Isso mostrará todos os pedidos em que order_amount é maior ou igual a 100 e menor ou igual a 500.
More Information
Copyright de Ben Brumm - DatabaseStar
|