PostgreSQL BETWEEN
O operador `BETWEEN` no PostgreSQL é utilizado para filtrar o conjunto de resultados em um intervalo de valores especificado. Ele é inclusivo, o que significa que ambos os valores de limite são considerados parte do intervalo.
Uso
O operador `BETWEEN` é normalmente usado em cláusulas `WHERE` para selecionar valores dentro de um intervalo específico. Ele pode ser aplicado a tipos de dados numéricos, de texto e de data.
SELECT column_name
FROM table_name
WHERE column_name BETWEEN lower_bound AND upper_bound;
Nessa sintaxe, `column_name` é verificado para ver se seus valores estão dentro de `lower_bound` e `upper_bound`. Observe que, se `column_name` for `NULL`, o resultado de `BETWEEN` também será `NULL`, excluindo efetivamente essas linhas do conjunto de resultados.
Exemplos
1. Intervalo numérico básico
SELECT *
FROM products
WHERE price BETWEEN 10 AND 20;
Essa consulta recupera todos os registros da tabela `produtos` em que o `preço` está entre 10 e 20, inclusive.
2. Intervalo de datas
SELECT order_id, order_date
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
Este exemplo filtra os pedidos feitos no ano de 2023, verificando se `order_date` está dentro do intervalo de datas especificado.
3. Faixa de texto
SELECT employee_id, last_name
FROM employees
WHERE last_name BETWEEN 'A' AND 'M';
Essa consulta seleciona funcionários cujos sobrenomes começam com letras que variam de "A" a "M". O intervalo é determinado pela ordenação lexicográfica, o que significa que a comparação é baseada na sequência alfabética de caracteres.
Dicas e práticas recomendadas
- Limites inclusivos. Lembre-se de que `BETWEEN` inclui os valores de limite; se você precisar de limites exclusivos, considere o uso de `>`, `<`, `>=` ou `<=`.
- Tipos de dados consistentes. Certifique-se de que os tipos de dados da coluna e os limites sejam compatíveis para evitar erros.
- Use com funções de data. Combine `BETWEEN` com funções de data como `CURRENT_DATE` para obter intervalos de datas dinâmicos.
- Considere o desempenho. Em conjuntos de dados grandes, certifique-se de que a coluna usada com `BETWEEN` seja indexada para melhorar o desempenho da consulta.
- Uso da função Cuidado. Tenha cuidado ao usar funções na coluna dentro da cláusula `BETWEEN`, pois isso pode anular os benefícios da indexação e afetar o desempenho.