包含或排除行 (Visual Database Tools)

适用于:SQL Server

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

注释

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

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

region = 'UK'

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

region = 'UK' AND product_line = 'Housewares'

可以将这些条件与 ANDOR. 前面的示例使用 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)