El operador IN en SQL

El operador IN en SQL comprueba si un valor está dentro de una lista de opciones en la cláusula WHERE . Es una forma clara de decir «si el valor es cualquiera de estos…».

El operador IN en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.

Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.

En lugar de encadenar muchas condiciones con OR , escribes los valores entre paréntesis. Por ejemplo, Pais IN ('España', 'Francia', 'Italia') equivale a comprobar país España, país Francia o país Italia, pero resulta más legible cuando la lista crece.

También existe NOT IN para excluir una lista de valores. Más adelante verás que la lista puede generarse con otra consulta SELECT (subconsulta).


Sintaxis IN

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantilla IN

    SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna IN (valor1, valor2, ...);
  

IN con lista de valores en SQL

En lugar de encadenar varios OR , escribe todos los valores entre paréntesis:

España, Francia o Italia

    SELECT *
FROM Clientes
WHERE Pais IN ('España', 'Francia', 'Italia');
  
Abrir en editor

Resultado: solo clientes de España, Francia e Italia.

Nombre_ClientePais
Ana GarcíaEspaña
Luis PérezEspaña
Marie DuboisFrancia
Luca RossiItalia
… 3 filas más españolas (7 en total)

Base de datos demo para IN

Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.

ID_Cliente Nombre_Cliente Ciudad Pais N_Ventas
1Ana GarcíaMadridEspaña120
2Luis PérezBarcelonaEspaña85
3María LópezValenciaEspaña200
4Carlos RuizMadridEspaña45
5Elena TorresSevillaEspaña67
6John SmithLondonUK150
7Marie DuboisParisFrancia92
8Hans MüllerBerlinAlemania78
9Luca RossiRomaItalia110
10Sofia AndersStockholmSuecia55
Tabla Clientes en el editor SQL (10 filas). La usamos en la mayoría de ejemplos de esta fase.

Base de datos demo para IN

ID_Cliente Nombre_Cliente Ciudad Pais N_Ventas
1Ana GarcíaMadridEspaña120
2Luis PérezBarcelonaEspaña85
3María LópezValenciaEspaña200
4Carlos RuizMadridEspaña45
5Elena TorresSevillaEspaña67
6John SmithLondonUK150
7Marie DuboisParisFrancia92
8Hans MüllerBerlinAlemania78
9Luca RossiRomaItalia110
10Sofia AndersStockholmSuecia55
Tabla Clientes en el editor SQL (10 filas). La usamos en la mayoría de ejemplos de esta fase.

NOT IN en SQL

NOT IN devuelve filas cuyo valor no está en la lista. Aquí, clientes que no son de España ni del Reino Unido ( 'UK' en nuestra base de datos):

Fuera de España y UK

    SELECT * 
FROM Clientes
WHERE Pais NOT IN ('España', 'UK');
  
Abrir en editor

IN con subconsulta SELECT

La lista también puede generarse con otra consulta SELECT . Aquí, clientes cuyo país también tiene proveedores:

Países con proveedores

    SELECT * 
FROM Clientes
WHERE Pais IN (SELECT Pais FROM Proveedores);
  
Abrir en editor

Resumen

  • IN comprueba si un valor está en una lista.
  • NOT IN excluye una lista.
  • Equivalente a varias condiciones OR, pero más legible.
  • La lista puede venir de una subconsulta SELECT.

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.