如何包含或排除行 (Visual Database Tools)

若要限制 SELECT 查询应返回的行数,请创建搜索条件或筛选条件。在 SQL 中,搜索条件出现在语句的 WHERE 子句中,或者如果创建的是聚合查询,则搜索条件将出现在 HAVING 子句中。

注意注意

您也可使用搜索条件指示受“更新”、“插入结果”、“插入值”、“删除”或“生成表”查询影响的行。

当查询运行时,数据库引擎将检查搜索条件并将其应用到要搜索的表的每一行。如果行满足搜索条件,就会包括在查询中。例如,一个查找特定区域内所有雇员的搜索条件可以类似如下形式:

region = 'UK'

若要建立在结果中包括行的准则,可以使用多个搜索条件。例如,下面的搜索准则由两个搜索条件组成。只有当行满足这两个条件时,查询才在结果集内包括该行。

region = 'UK' AND product_line = 'Housewares'

您可以用 AND 或 OR 组合这些条件。上面的示例使用了 AND。相反,下面的准则使用的是 OR。结果集将包括满足其中任一个搜索条件或两个搜索条件都满足的所有行:

region = 'UK' OR product_line = 'Housewares'

您甚至可以组合对单个列的搜索条件。例如,下面的准则组合了区域列的两个条件:

region = 'UK' OR region = 'US'

有关组合搜索条件的详细信息,请参阅以下主题:

示例

下面是使用各种运算符和行条件的查询的一些示例:

  • 文本   单个文本值、数值、日期值或逻辑值。下面的示例使用一个文本值在所有行中查找在英国的雇员:

    WHERE region = 'UK'
    
  • 列引用   比较一个列中的值和另一个列中的值。下面的示例在 products 表中搜索所有生产成本低于运输成本的行:

    WHERE prod_cost < ship_cost
    
  • 函数   对函数的引用,数据库后端可以对其进行解析以计算搜索值。此类函数可以是由数据库服务器定义的函数或者是返回标量值的用户定义函数。下面的示例搜索今天所下的订单(GETDATE( ) 函数返回当前日期):

    WHERE order_date = GETDATE()
    
  • NULL   下面的示例在 authors 表中搜索所有名字已存档的作者:

    WHERE au_fname IS NOT NULL
    
  • 计算   涉及文本、列引用或其他表达式的计算结果。下面的示例在 products 表中搜索零售价格高于生产成本两倍的所有行:

    WHERE sales_price > (prod_cost * 2)