Lección 3 de 20

Filtrar con WHERE y ordenar con ORDER BY

Convierta una lectura completa en una respuesta precisa con condiciones y clasificación.

18 minSin cuenta

Al final de esta lección

  • Construir una condición WHERE
  • Combina múltiples criterios
  • Ordenar con ASC y DESC

WHERE mantiene filas que cumplen una condición

Sin filtro, la consulta devuelve todas las filas. WHERE se escribe después de FROM y compara una columna con un valor.

Los textos están rodeados de apóstrofes. Los números permanecen sin apóstrofes cuando se almacenan como números.

  • = igual
  • <> diferente
  • Comparaciones estrictas de > y <
  • >= y <= incluyen valor límite
Productos inferiores a 50 TND
SELECT produit, prix
FROM produits
WHERE prix < 50;

Combinar con AND, OR y NOT

AND requiere que ambas condiciones sean verdaderas. OR acepta que solo una condición es verdadera. Los paréntesis hacen explícita la prioridad.

NOT invierte una prueba. Debe utilizarse con una redacción que sea fácil de releer.

Dos condiciones obligatorias
SELECT produit, categorie, prix
FROM produits
WHERE categorie = 'Informática'
  AND prix <= 100;
Cuando AND y OR aparecen juntos, utiliza paréntesis incluso si conoce su precedencia. El próximo lector te lo agradecerá.

ORDER BY organiza el resultado

ORDER BY ocurre después del filtro. ASC ordena en orden ascendente y suele ser el valor predeterminado. DESC aplica orden descendente.

Se pueden especificar varias columnas. El segundo separa líneas idénticas según el primero.

Del precio más alto al más bajo
SELECT produit, prix
FROM produits
WHERE prix >= 10
ORDER BY prix DESC, produit ASC;

Preste atención a los valores NULL

NULL significa sin valor conocido. No se compara con = NULL.

Utiliza IS NULL para encontrar valores faltantes y IS NOT NULL para valores completados.

Clientes sin ciudad ingresados
SELECT nom
FROM clients
WHERE ville IS NULL;

Hacer un filtro explicable y reproducible

Un filtro traduce una regla de negocio. Escribe esta regla como oración antes de convertirla a SQL: Órdenes pagadas, creadas durante julio, cuyo monto sea al menos 100 TND. Cada palabra influye en el operador y los límites.

Las fechas requieren atención especial. Para un periodo completo, un punto de inicio incluido y un punto final excluido evitan problemas de tiempo: date >= '2026-07-01' AND date < '2026-08-01'.

Una clasificación también debe ser estable. Cuando dos filas tengan el mismo valor principal, añade un segundo criterio único para obtener el mismo orden en cada ejecución y en cada exportación paginada.

Filtro fechado y orden estable.
SELECT id_commande, date_commande, montant
FROM commandes
WHERE statut = 'Pagado'
  AND date_commande >= DATE '2026-07-01'
  AND date_commande < DATE '2026-08-01'
ORDER BY montant DESC, id_commande ASC;
Un límite, un estado o una clasificación implícitos casi siempre terminan creando una discrepancia en un informe.

Comprueba lo que has entendido

Mostrar productos con un precio mínimo de 40 TND, del más barato al más caro.

Para completar
SELECT produit, prix
FROM produits
WHERE -- condición
ORDER BY -- ordenación;

Progreso

¿Has completado esta lección?

Tu elección permanece en este navegador y también se sincroniza con tu cuenta cuando inicias sesión.

Lección siguiente