El operador IN de SQL filtra un conjunto de resultados en función de una lista de valores. La lista de valores puede ser simplemente listada o es proporcionada por una declaración SELECT separada (esto se llama una subconsulta).
El operador IN siempre se utiliza dentro de la cláusula WHERE.
Sintaxis
A continuación, se muestra la sintaxis del operador IN enumerando los valores directamente.
SELECT "nombre_columan"
FROM "nombre_tabla"
WHERE " nombre_columan " IN (valor1, 'valor2', ...);
El número de valores en el paréntesis puede ser uno o más, con cada uno de los valores separados por comas. Los valores pueden ser caracteres numéricos o de cadena. Si solo hay un valor dentro del paréntesis, esta instrucción es equivalente a:
WHERE "column_name" = 'value1'
La sintaxis para el operador IN en una subconsulta es la siguiente:
SELECT "nombre_columan"
FROM "nombre_tabla"
WHERE "nombre_columan" IN ( [SELECT STATEMENT] );
Ejemplos
Usamos la tabla Employes de base de datos Northwind que hemos estado utilizando y la pueden descargar en esta liga.
Tabla Employes:
EmployeeID | LastName | FirstName | Title | Address |
---|---|---|---|---|
1 | Davolio | Nancy | Representante de Ventas | 507 - 20th Ave. E. Apt. 2A |
2 | Web Group | Estrada | Vice President, Sales | 908 W. Capital Way |
3 | Leverling | Janet | Representante de Ventas | 722 Moss Bay Blvd. |
4 | Peacock | Margaret | Representante de Ventas | 4110 Old Redmond Rd. |
5 | Buchanan | Steven | Sales Manager | 14 Garrett Hill |
6 | Suyama | Michael | Representante de Ventas | Coventry House Miner Rd. |
7 | King | Robert | Representante de Ventas | Edgeham Hollow Winchester Way |
8 | Callahan | Laura | Inside Sales Coordinator | 4726 - 11th Ave. N.E. |
9 | Dodsworth | Anne | Representante de Ventas | 7 Houndstooth Rd. |
Para seleccionar todos los registros donde el TItle sea “Vice President, Sales” o “Sales Manager” en Tabla Employes, ingresamos lo siguiente:
SELECT EmployeeID, LastName, FirstName, Title, Address FROM Employees WHERE Title IN('Vice President, Sales', 'Sales Manager');
Resultado
EmployeeID | LastName | FirstName | Title | Address |
---|---|---|---|---|
2 | Web Group | Estrada | Vice President, Sales | 908 W. Capital Way |
5 | Buchanan | Steven | Sales Manager | 14 Garrett Hill |
Para ver un ejemplo del operador IN con una instrucción SELECT por separado, consulte la sección Subconsulta.