リスト検索条件

IN キーワードを使うと、値のリストの中のいずれかに一致する列を選択できます。たとえば、IN を使用せずに Frames サブカテゴリの製品の一覧を取得する場合は、次のクエリが必要になります。

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

しかし、IN を使えば、少ない入力で同じ結果を得ることができます。

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

IN キーワードの後に来る項目はコンマで区切り、かっこで囲む必要があります。

IN キーワードの最も重要な用途は、入れ子になったクエリの中で使う場合です。入れ子になったクエリは、サブクエリとも呼ばれます。サブクエリの詳細については、「サブクエリの基礎」を参照してください。

次のクエリでは、"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

次のクエリでは、"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