SQL BETWEEN: leer valores en un rango definido

El operador SQL BETWEEN se utiliza para establecer un rango de valores para una nueva salida. Funciona con números, datos y textos.

¿Qué es SQL BETWEEN?

Si quieres utilizar el lenguaje de consulta estructurado dentro de una base de datos para mostrar aquellas entradas que están dentro de un rango definido de valores, el operador SQL BETWEEN es la mejor opción. No solo se aplica a valores numéricos, sino que también funciona con fechas o incluso entradas de texto. Además, es inclusivo, por lo que tanto el primero como el último registro que limitan el intervalo están incluidos en la selección. SQL BETWEEN se integra en una condición WHERE y se utiliza con los comandos SQL DELETE, INSERT, SELECT y UPDATE.

Servidores virtuales VPS
Virtualización completa con acceso root
  • Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
  • Almacenamiento SSD NVMe ultrarrápido
  • Incluye: edición Plesk Web Host

Sintaxis y funcionamiento

Veamos más de cerca la combinación de SQL BETWEEN con el comando SELECT y la condición WHERE. La sintaxis correspondiente tiene este aspecto:

SELECT columna1, columna2, …
FROM nombre_de_la_tabla
WHERE nombre_de_la_columna BETWEEN valor_inicial AND valor_final;
sql

Al especificar columna1, columna2, etc., se indica qué columnas deben mostrarse. Después, se proporciona el nombre de la tabla en la que se encuentran estas columnas. Con nombre_de_la_columna, se especifica qué valores quieren considerarse y, luego, con BETWEEN valor_inicial AND valor_final, se define el intervalo en el que deben estar los valores.

Ejemplo de uso del operador

Para explicar cómo funciona SQL BETWEEN, se va a crear una tabla de ejemplo llamada “Lista de clientes”. Va a contener el número de cliente, el apellido, la ubicación, la fecha del pedido, la cantidad de artículos del pedido y el importe total en euros que estos clientes han pagado. Las ubicaciones elegidas son Berlín, Hamburgo, Múnich y Passau.

Número de cliente Apellido Ubicación Fecha de pedido Nr. de Artículos Importe total
1427 Schmidt Berlín 1/13/2024 14 634
1377 Schulz Hamburgo 1/19/2024 9 220
1212 Peters Hamburgo 1/3/2024 15 619
1431 Müller Múnich 1/19/2024 22 912
1118 Becker Passau 2/1/2024 10 312

Para filtrar esta lista, se puede utilizar el operador. Por ejemplo, es posible mostrar solo los clientes que hayan invertido entre 300 y 700 euros en el periodo estimado. Este es el código:

SELECT número de cliente, apellido, ubicación, fecha de pedido, la cantidad de artículos, importe total
FROM Lista de clientes
WHERE Importe total BETWEEN 300 AND 700;
sql

El resultado es el siguiente:

Número de cliente Apellido Ubicación Fecha de pedido Nr. de Artículos Importe total
1427 Schmidt Berlín 1/13/2024 14 634
1212 Peters Hamburgo 1/3/2024 15 619
1118 Becker Passau 2/1/2024 10 312

Palabras como intervalo de valores

SQL BETWEEN también funciona con palabras. Lo que importa en este caso son las letras iniciales de los valores de texto almacenados. En el siguiente ejemplo, solo se quieren considerar las entradas que se encuentren alfabéticamente entre los apellidos “Müller” y “Schmidt”. Esta es la sintaxis:

SELECT número de cliente, apellido, ubicación, fecha de pedido, la cantidad de artículos, importe total
FROM Lista de clientes
WHERE Apellido BETWEEN 'Müller' AND 'Schmidt'
ORDER BY Apellido;
sql

Se obtiene esta nueva tabla:

Número de cliente Apellido Ubicación Fecha de pedido Nr. de Artículos Importe total
1431 Müller Múnich 1/19/2024 22 912
1212 Peters Hamburgo 1/3/2024 15 619
1427 Schmidt Berlín 1/13/2024 14 634

Se consideran las entradas “Müller” y “Schmidt”, ya que el operador es inclusivo. Mediante la instrucción ORDER BY Apellido, se solicita una salida en orden alfabético por apellido.

Seleccionar por fecha

Si quieres ver solo los pedidos que se procesaron dentro de un período de tiempo específico, también puedes hacerlo con SQL BETWEEN. En el siguiente ejemplo, se filtra la lista de clientes por pedidos entre el 10 y el 31 de enero de 2024. Esta es la sintaxis:

SELECT número de cliente, apellido, ubicación, fecha de pedido, la cantidad de artículos, importe total
FROM Lista de clientes
WHERE Fecha de pedido BETWEEN '1/10/2024' AND '1/31/2024';
sql

Se obtiene la siguiente tabla:

Número de cliente Apellido Ubicación Fecha de pedido Nr. de Artículos Importe total
1427 Schmidt Berlín 1/13/2024 14 634
1377 Schulz Hamburgo 1/19/2024 9 220
1431 Müller Múnich 1/19/2024 22 912

Operadores similares a SQL BETWEEN

También puedes mostrar solo los resultados que están fuera del intervalo definido. Para ello, debes utilizar NOT BETWEEN y el procedimiento es muy similar. Esto es lo que hay que escribir si solo queremos mostrar a los clientes que han gastado menos de 300 euros o más de 700 euros:

SELECT número de cliente, apellido, ubicación, fecha de pedido, la cantidad de artículos, importe total 
FROM Lista de clientes
WHERE Importe total NOT BETWEEN 300 AND 700;
sql

El resultado solo contiene dos entradas:

Número de cliente Apellido Ubicación Fecha de pedido Nr. de Artículos Importe total
1377 Schulz Hamburgo 1/19/2024 9 220
1431 Müller Múnich 1/19/2024 22 912
Consejo

Un hosting adaptado a tus necesidades: con el SQL-Server-Hosting de IONOS no solo podrás elegir entre MSSQL, MySQL o MariaDB, sino que también obtienes un rendimiento insuperable y la posibilidad de recibir asesoramiento personalizado.

¿Le ha resultado útil este artículo?
Page top