SQL Server And操作符

在本教程中,将学习如何使用SQL Server AND运算符组合多个布尔表达式。

AND是一个逻辑运算符,用于组合两个布尔表达式。仅当两个表达式求值为TRUE时,它才返回TRUE

以下说明了AND运算符的语法:

boolean_expression AND boolean_expression

boolean_expression是任何有效的布尔表达式,其计算结果为TRUEFALSEUNKNOWN

下表显示使用AND运算符组合:TRUEFALSEUNKNOWN值时的结果:

  TRUE FALSE UNKNOWN
TRUE TRUE FALSE UNKNOWN
FALSE FALSE FALSE FALSE
UNKNOWN UNKNOWN FALSE UNKNOWN

在表达式中使用多个逻辑运算符时,SQL Server始终首先计算AND运算符。 但是,可以使用括号更改评估顺序。

SQL Server AND运算符示例

我们将使用示例数据库中的products表进行演示,表的结构如下:

A. 使用AND运算符示例

以下示例查找类别标识号(category_id)为1且价格大于400的产品:

SELECT
    *
FROM
    production.products
WHERE
    category_id = 1
AND list_price > 400
ORDER BY
    list_price DESC;

执行上面查询语句,得到以下结果:

B. 使用多个AND运算符示例

以下语句查找满足以下所有条件的产品:类别编号(category_id)为1,价格大于400,品牌编号(brand_id)为1

SELECT
    *
FROM
    production.products
WHERE
    category_id = 1
AND list_price > 400
AND brand_id = 1
ORDER BY
    list_price DESC;

执行上面查询语句,得到以下结果:

C. 使用AND与其他逻辑运算符

请参阅以下查询示例:

SELECT
    *
FROM
    production.products
WHERE
    brand_id = 1
OR brand_id = 2
AND list_price > 1000
ORDER BY
    brand_id DESC;

执行上面查询语句,得到以下结果:

在这个例子中,在条件中使用了ORAND运算符。与往常一样,SQL Server首先评估AND运算符。因此,查询检索到品牌编号为2且价格大于1000的产品或品牌编号为1的产品。

要获得品牌编号为12且价格大于1000的产品,请使用括号,如下所示:

SELECT
    *
FROM
    production.products
WHERE
    (brand_id = 1 OR brand_id = 2)
AND list_price > 1000
ORDER BY
    brand_id;

执行上面查询语句,得到以下结果:

在本教程中,学习了如何使用SQL Server AND运算符组合两个布尔表达式。


上一篇: SQL Server数据查询 下一篇: SQL Server连接表