Condiciones de búsqueda de lista

La palabra clave IN permite seleccionar las filas que coinciden con alguno de los valores de una lista. Por ejemplo, sin IN, si desea obtener una lista de productos de la subcategoría Frames, debe generar esta consulta:

USE AdventureWorks2008R2;
GO
SELECT ProductID, Name
FROM AdventureWorks2008R2.Production.Product
WHERE ProductSubcategoryID = 12 OR ProductSubcategoryID = 14
    OR ProductSubcategoryID = 16 ;

Sin embargo, si utiliza IN, puede conseguir los mismos resultados y escribir menos.

SELECT ProductID, Name
FROM AdventureWorks2008R2.Production.Product
WHERE ProductSubCategoryID IN (12, 14, 16)

Los elementos que siguen a la palabra clave IN deben aparecer separados por comas e incluidos entre paréntesis.

Quizás la utilización más importante de la palabra clave IN sean las consultas anidadas, también conocidas como subconsultas. Para obtener más información acerca de las subconsultas, vea Aspectos básicos de las subconsultas.

En la consulta siguiente se localizan todos los productos que pertenecen al modelo "Long-sleeve logo jersey":

USE AdventureWorks2008R2;
GO
SELECT DISTINCT Name
FROM Production.Product
WHERE ProductModelID IN
(SELECT ProductModelID 
FROM Production.ProductModel
WHERE Name = 'Long-sleeve logo jersey') ;
GO

En la consulta siguiente se localizan todos los productos que no pertenecen al modelo "Long-sleeve logo jersey":

USE AdventureWorks2008R2;
GO
SELECT DISTINCT Name
FROM Production.Product
WHERE ProductModelID NOT IN
(SELECT ProductModelID 
FROM Production.ProductModel
WHERE Name = 'Long-sleeve logo jersey') ;
GO