IN条件は、指定した値のリストまたは表の副問合せと式を比較します。式がリストの値のいずれかまたは副問合せによって返された値と等しい場合、IN条件はTRUEと評価されます。式がリストの値のいずれにも等しくないか、または副問合せによって返された値と等しくない場合、NOT INはTRUEと評価されます。
Expression [NOT] IN (ValueList|Subquery)
Expression | 式の構文については、「式」を参照してください。IN条件には、数値式も数値以外の式も使用できますが、ValueListの値は式と互換性がある必要があります。 |
ValueList |
式の値と比較する値を指定します。ValueListの構文は、次のとおりです。 { Constant| { ? | :DynamicParameter} } [,...]
|
Subquery |
副問合せの構文については、「副問合せ」を参照してください。 |
重量が12、16、17の部品の番号を検索します。
シリアル番号が'1123-P-01'、
'1733-AD-01'、:SerialNumberまたは:SerialIndである部品の部品番号を検索します。:SerialNumberと:SerialIndは動的パラメータで、その値は実行時に指定されます。
SELECT PartNumber FROM Purchasing.Parts WHERE SerialNumber IN ('1123-P-01', '1733-AD-01',:SerialNumber, :SerialInd);
次に、1件以上の未発送の発注がある顧客を検索する副問合せの例を示します。
副問合せのあるNOT INの例です。
SELECT * FROM customers WHERE cid NOT IN (SELECT cust_id FROM returns) AND cid > 5000; SELECT * FROM customers WHERE cid NOT IN (SELECT cust_id FROM returns) AND cid NOT IN (SELECT cust_id FROM complaints); SELECT COUNT(*) From customers WHERE cid NOT IN (SELECT cust_id FROM returns) AND cid NOT IN (SELECT cust_id FROM complaints);
次に、INを使用した副問合せを指定する集計問合せを使用して、exclBookListの本の最も高い価格を検索する例を示します。
INまたはNOT IN条件で空の選択リストを問い合せる例を示します。
exclBookList以外の本または価格が$20より高いすべての本を選択する例を示します。