在本教程中,将学习如何使用SQL Server AND
运算符组合多个布尔表达式。
AND
是一个逻辑运算符,用于组合两个布尔表达式。仅当两个表达式求值为TRUE
时,它才返回TRUE
。
以下说明了AND
运算符的语法:
boolean_expression AND boolean_expression
boolean_expression
是任何有效的布尔表达式,其计算结果为TRUE
,FALSE
和UNKNOWN
。
下表显示使用AND
运算符组合:TRUE
,FALSE
和UNKNOWN
值时的结果:
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;
执行上面查询语句,得到以下结果:
在这个例子中,在条件中使用了OR
和AND
运算符。与往常一样,SQL Server首先评估AND
运算符。因此,查询检索到品牌编号为2
且价格大于1000
的产品或品牌编号为1
的产品。
要获得品牌编号为1
或2
且价格大于1000
的产品,请使用括号,如下所示:
SELECT
*
FROM
production.products
WHERE
(brand_id = 1 OR brand_id = 2)
AND list_price > 1000
ORDER BY
brand_id;
执行上面查询语句,得到以下结果:
在本教程中,学习了如何使用SQL Server AND
运算符组合两个布尔表达式。