SQL必知必会(第5版)
上QQ阅读APP看书,第一时间看更新

5.2 IN操作符

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取一组由逗号分隔、括在圆括号中的合法值。下面的例子说明了这个操作符。

输入▼

    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id  IN ('DLL01','BRS01')
    ORDER BY prod_name;

输出▼

    prod_name                  prod_price
    -------------------      ----------
    12 inch teddy bear       8.9900
    18 inch teddy bear       11.9900
    8 inch teddy bear        5.9900
    Bird bean bag toy        3.4900
    Fish bean bag toy        3.4900
    Rabbit bean bag toy      3.4900
    Raggedy Ann                4.9900

分析▼

此SELECT语句检索由供应商DLL01和BRS01制造的所有产品。IN操作符后跟由逗号分隔的合法值,这些值必须括在圆括号中。

你可能会猜测IN操作符完成了与OR相同的功能,恭喜你猜对了!下面的SQL语句完成与上面的例子相同的工作。

输入▼

    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'
    ORDER BY prod_name;

输出▼

    prod_name                  prod_price
    -------------------      ----------
    12 inch teddy bear       8.9900
    18 inch teddy bear       11.9900
    8 inch teddy bear        5.9900
    Bird bean bag toy        3.4900
    Fish bean bag toy        3.4900
    Rabbit bean bag toy      3.4900
    Raggedy Ann                4.9900

为什么要使用IN操作符?其优点如下。

❑ 在有很多合法选项时,IN操作符的语法更清楚,更直观。

❑ 在与其他AND和OR操作符组合使用IN时,求值顺序更容易管理。

❑ IN操作符一般比一组OR操作符执行得更快(在上面这个合法选项很少的例子中,你看不出性能差异)。

❑ IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。第11课会对此进行详细介绍。

IN

WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。