Módulo 2 · Filtrar datos

Filtra rangos y listas con BETWEEN e IN

Escribe filtros más claros para rangos y grupos de valores.

18 minNivel InicialAntes necesitas: AND, OR y NOT

0 de 45 lecciones

Al terminar, podrás

  • Elegir BETWEEN para un intervalo inclusivo.
  • Elegir IN para comparar con una lista de valores.
  • Traducir ambas formas a comparaciones conocidas para comprobar el filtro.

Recupera lo aprendido: ¿Cuándo deben cumplirse las dos condiciones de un filtro: con AND o con OR?

La idea clave

BETWEEN comprueba si un valor está dentro de un intervalo inclusivo. IN comprueba si coincide con uno de los valores de una lista. Las dos formas hacen que un filtro sea más breve sin cambiar la pregunta que resuelve.

Traducción mental: precio BETWEEN 50 AND 200 equivale a pedir precio >= 50 AND precio <= 200. ciudad IN ('Madrid', 'Bilbao') equivale a unir dos igualdades con OR.

La sintaxis básica

Estructura
WHERE columna BETWEEN mínimo AND máximo

WHERE columna IN (valor1, valor2, valor3)

En BETWEEN, escribe primero el límite inferior y después el superior. En IN, encierra la lista entre paréntesis y utiliza comillas simples para los textos.

Si la columna también contiene horas

Para incluir todo mayo, usa fecha >= '2025-05-01' AND fecha < '2025-06-01'. Un límite superior de '2025-05-31' puede excluir horas de ese último día. En la tabla pedidos del curso las fechas contienen solo año, mes y día.

Ejemplo paso a paso

Datos relevantes de la tabla productos
nombreprecio
Ratón24,90
Teclado49,50
Monitor 24179,00
Portátil Pro999,00
Auriculares69,90
Monitor 27249,00
Disco SSD89,00
Cable USB-C12,00
Altavoz54,00

Buscamos productos cuyo precio esté entre 50 y 200, incluyendo ambos límites.

SQL
SELECT nombre, precio
FROM productos
WHERE precio BETWEEN 50 AND 200;
Resultado esperado
nombreprecio
Monitor 24179,00
Auriculares69,90
Disco SSD89,00
Altavoz54,00

Cómo funciona

  1. El motor compara el precio de cada producto con 50.
  2. También comprueba que no supere 200.
  3. Solo conserva las filas que cumplen ambas comparaciones.
  4. Un valor exactamente igual a 50 o 200 también entraría.
Comprueba tu comprensión

¿Un precio exactamente igual a 200 cumple BETWEEN 50 AND 200?

Un error habitual

Olvidar los paréntesis de IN

Ejemplo con error
SELECT nombre
FROM clientes
WHERE ciudad IN 'Madrid', 'Bilbao';

La lista debe formar una unidad: IN ('Madrid', 'Bilbao'). En un rango, otro fallo frecuente es invertir los límites; BETWEEN 200 AND 50 no describe el intervalo de 50 a 200.

Practica con datos

Laboratorio SQL

Resuelve la consulta

Pendiente

Escribe una consulta que devuelva nombre y ciudad de los clientes que vivan en Madrid o Bilbao. El orden no importa.

Resultado esperado: 6 filas con nombre, ciudad. El orden de las filas no importa.

Ver tablas y datos

Cargando la estructura del ejercicio…

La consulta usa datos ficticios y se ejecuta solo en este navegador.

Fuentes técnicas consultadas

Las fuentes confirman el carácter inclusivo de BETWEEN y la sintaxis de las comparaciones con listas.

Comprueba si puedes explicarlo

Para un precio de 50, ¿precio BETWEEN 50 AND 200 es verdadero? ¿Y BETWEEN 200 AND 50?

Ver respuesta razonada

El primer filtro lo incluye porque ambos extremos son inclusivos. El segundo no encuentra valores: pide que el precio sea a la vez mayor o igual que 200 y menor o igual que 50.

Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.

Qué debes recordar

  • BETWEEN incluye el límite mínimo y el máximo.
  • IN necesita una lista entre paréntesis.
  • Los textos de una lista se escriben entre comillas simples.

A continuación: Continúa con Busca patrones de texto con LIKE.

Conceptos relacionados