在本教程中,将学习如何使用SQL Server OR
运算符组合两个布尔表达式。
SQL Server OR
是一个逻辑运算符,用于组合两个布尔表达式。当任一条件的计算结果为TRUE
时,它返回TRUE
。
以下显示了OR
运算符的语法:
boolean_expression OR boolean_expression
在此语法中,boolean_expression
是任何有效的布尔表达式,其计算结果为:true
,false
和unknown
。
下表显示了组合:TRUE
,FALSE
和UNKNOWN
时OR
运算符的结果:
TRUE | FALSE | UNKNOWN | |
---|---|---|---|
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | UNKNOWN |
UNKNOWN | TRUE | UNKNOWN | UNKNOWN |
在语句中使用多个逻辑运算符时,SQL Server将在AND
运算符之后计算OR
运算符。 但是,可以使用括号更改评估顺序。
SQL Server OR运算符示例
我们将使用示例数据库中的products
表进行演示,表的结构如下:
A. 使用OR运算符示例
以下示例查找价格小于200
或大于6000
的产品:
SELECT
product_name,
list_price
FROM
production.products
WHERE
list_price < 200
OR list_price > 6000
ORDER BY
list_price;
执行上面查询语句,得到以下结果 -
B. 使用多个OR运算符示例
以下语句查找品牌编号(brand_id
)为1
,2
或4
的产品:
SELECT
product_name,
brand_id
FROM
production.products
WHERE
brand_id = 1
OR brand_id = 2
OR brand_id = 4
ORDER BY
brand_id DESC;
执行上面查询语句,得到以下结果 -
可以通过IN运算符替换多个OR
运算符,如以下查询所示:
SELECT
product_name,
brand_id
FROM
production.products
WHERE
brand_id IN (1, 2, 3)
ORDER BY
brand_id DESC;
C. 使用OR和AND运算符示例
请考虑以下示例:
SELECT
product_name,
brand_id,
list_price
FROM
production.products
WHERE
brand_id = 3
OR brand_id = 4
AND list_price > 100
ORDER BY
brand_id DESC;
执行上面查询语句,得到以下结果 -
在这个例子中,使用了OR
和AND
运算符。 与往常一样,SQL Server首先评估AND
运算符。 因此,查询返回品牌编号(brand_id
)为4
且价格大于100
的产品或品牌编号(brand_id
)为3
的产品。
要查找品牌编号(brand_id
)为3
或4
且价格大于100
的产品,请使用括号,如以下查询所示:
SELECT
product_name,
brand_id,
list_price
FROM
production.products
WHERE
(brand_id = 3 OR brand_id = 4)
AND list_price > 100
ORDER BY
brand_id;
执行上面查询语句,得到以下结果 -