SQL BETWEEN é usado para definir um intervalo de valores a ser con­si­de­rado em uma consulta. O operador funciona com números, datas e textos (strings).

O que é SQL BETWEEN?

Se você deseja exibir entradas, em um banco de dados, que estejam dentro de um intervalo de valores definido usando a Linguagem de Consulta Es­tru­tu­rada (SQL), o operador SQL BETWEEN é a melhor escolha. Ele pode ser aplicado não apenas a valores numéricos, mas também a datas e até mesmo a entradas de texto (strings). Esse operador é inclusivo, o que significa que o primeiro e o último valor que delimitam o intervalo são incluídos na contagem. O SQL BETWEEN deve ser utilizado com uma cláusula WHERE e executado com os comandos SQL DELETE, INSERT, SELECT e UPDATE.

VPS Hosting (Virtual Private Servers)
World-class VPS at America’s lowest price

Hos­pe­da­gem VPS poderosa e de baixo custo para rodar suas apli­ca­ções sob medida, com as­sis­tente pessoal e suporte 24 horas.

  • Save 50% or more vs leading hosts
  • Unlimited traffic & no setup fees 
  • 99.99% uptime gua­ran­teed
  • Free 24/7 premium support 

Sintaxe e fun­ci­o­na­li­dade

Vamos examinar mais de perto a interação do operador SQL BETWEEN com o comando SELECT e a cláusula WHERE. A sintaxe cor­res­pon­dente é a seguinte:

SELECT coluna1, coluna2, …
FROM nome_da_tabela
WHERE nome_da_coluna BETWEEN valor_inicial AND valor_final;
sql

Com coluna1, coluna2 etc., você es­pe­ci­fica quais colunas devem ser exibidas. Em seguida, você indica o nome da tabela onde essas colunas estão lo­ca­li­za­das. Em nome_da_coluna, você define quais valores exa­ta­mente devem ser con­si­de­ra­dos e, em seguida, usa BETWEEN valor_inicial AND valor_final para es­pe­ci­fi­car o intervalo em que os valores devem estar.

Exemplo de uso do operador

Para ilustrar melhor o fun­ci­o­na­mento do operador SQL BETWEEN, criamos uma tabela de exemplo chamada “Lista de clientes”. Nela, listamos o número de cada cliente, o nome, a lo­ca­li­za­ção, a data do pedido, a quan­ti­dade de itens en­co­men­da­dos e o valor total em reais que esses clientes pagaram.

Número do Cliente Nome Lo­ca­li­za­Ã§Ã£o Data Itens Valor Total
1427 Santos Fortaleza 13/01/2024 14 634
1377 Fonseca Pi­ra­ci­caba 19/01/2024 9 220
1212 Hernandez Pi­ra­ci­caba 03/01/2024 15 619
1431 Faria Patos de Minas 19/01/2024 22 912
1118 Becker Goiânia 01/02/2024 10 312

Se quisermos filtrar essa lista, podemos usar o SQL BETWEEN para isso. Por exemplo, é possível exibir apenas os clientes que in­ves­ti­ram entre 300 e 700 reais no período es­pe­ci­fi­cado. Observe:

SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Valor Total BETWEEN 300 AND 700;
sql

A saída cor­res­pon­dente seria a seguinte:

Número do Cliente Nome Lo­ca­li­za­Ã§Ã£o Data Itens Valor Total
1427 Santos Fortaleza 13/01/2024 14 634
1212 Hernandez Pi­ra­ci­caba 03/01/2024 15 619
1118 Becker Goiânia 01/02/2024 10 312

Palavras como espectro de valores

O operador SQL BETWEEN também funciona com palavras — o critério é baseado nas letras iniciais dos valores textuais ar­ma­ze­na­dos. No exemplo a seguir, queremos con­si­de­rar apenas as entradas que estão al­fa­be­ti­ca­mente entre “Faria“ e “Santos”.

SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Nome BETWEEN 'Faria' AND 'Santos'
ORDER BY Nome;
sql

A saída será a seguinte tabela:

Número do Cliente Nome Lo­ca­li­za­Ã§Ã£o Data Itens Valor Total
1431 Faria Patos de Minas 19/01/2024 22 912
1377 Fonseca Pi­ra­ci­caba 19/01/2024 9 220
1212 Hernandez Pi­ra­ci­caba 03/01/2024 15 619
1427 Santos Fortaleza 13/01/2024 14 634

Os registros “Faria” e “Santos” são incluídos, pois o operador é inclusivo. Usando o comando ORDER BY Nome, podemos ordenar a saída em ordem al­fa­bé­tica.

Se­le­ci­o­nar por data

Se você deseja vi­su­a­li­zar apenas as tran­sa­ções de pedidos que foram pro­ces­sa­das dentro de um intervalo es­pe­cí­fico, também é possível usar o SQL BETWEEN para isso. No exemplo a seguir, filtramos nossa lista de clientes para mostrar pedidos feitos entre 10 e 31 de janeiro de 2024. O resultado seria:

SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Data BETWEEN '1/10/2024' AND '1/31/2024';
sql

Como resultado obtemos esta tabela:

Número do Cliente Nome Lo­ca­li­za­Ã§Ã£o Data Itens Valor Total
1427 Santos Fortaleza 13/01/2024 14 634
1377 Fonseca Pi­ra­ci­caba 19/01/2024 9 220
1431 Faria Patos de Minas 19/01/2024 22 912

Ope­ra­do­res se­me­lhan­tes ao SQL BETWEEN

Você também pode exibir apenas os re­sul­ta­dos que estão fora do intervalo definido. Para isso, use NOT BETWEEN. A abordagem é muito se­me­lhante. Se quisermos, no nosso exemplo, mostrar apenas os clientes que gastaram menos de 300 ou mais de 700 reais, o processo seria o seguinte:

SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
WHERE Valor Total NOT BETWEEN 300 AND 700;
sql

A saída incluiria apenas dois registros:

Número do Cliente Nome Lo­ca­li­za­Ã§Ã£o Data Itens Valor Total
1377 Fonseca Pi­ra­ci­caba 19/01/2024 9 220
1431 Faria Patos de Minas 19/01/2024 22 912
Dica

Hospede o seu servidor de acordo com as suas ne­ces­si­da­des: Com o SQL Server Hosting da IONOS, você não apenas escolhe entre o MSSQL, o MySQL e o MariaDB, como também se beneficia de con­sul­to­rias per­so­na­li­za­das e do melhor de­sem­pe­nho do mercado.

Ir para o menu principal