SQL IN

时间:2018-11-15 17:13:53  来源:igfitidea点击:

使用SQL IN查询列值在某一组值中的行。

在本教程中,您将学习如何使用SQL IN操作符来选择列值位于一组值中的行。

IN操作符在WHERE子句中用于选择其值位于一组值中的行。
您可以在任何接受WHERE子句(如SELECT、UPDATE或DELETE)的SQL语句中使用IN 操作符。

下面是如何在SELECT语句中使用IN:

SELECT 
    column1, column2,...
FROM
    table_name
WHERE
   (expr | column) IN (value1 , value2, ...);

如果列的表达式或者值与列表中的值匹配,则IN操作符返回TRUE,否则返回FALSE。

SQL IN 示例

例如,要选择成本为$90、$92或$100的产品,您可以执行以下查询:

SELECT 
    productid, unitcost
FROM
    item
WHERE
    unitcost IN (90 , 92, 100)

SQL IN 和 SQL OR 的比较

使用IN操作符可以避免在WHERE子句中使用多个OR操作符。

例如上面的查询语句可以重写为:

SELECT 
    productid, unitcost
FROM
    item
WHERE
    unitcost = 90 OR
    unitcost = 92 OR
    unitcost = 100

当值越来越多时,使用OR操作符的话查询语句就会变得不方便阅读。

SQL IN操作符和NOT 一起使用

IN操作符可以与NOT操作符组合来选择其列值不在一组值中的行。

例如,您可以使用以下查询选择成本不是90、92和100的产品:

SELECT 
    productid, unitcost
FROM
    item
WHERE
    unitcost NOT IN (90 , 92, 100)