SQL Server Or运算符

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

SQL Server OR是一个逻辑运算符,用于组合两个布尔表达式。当任一条件的计算结果为TRUE时,它返回TRUE

以下显示了OR运算符的语法:

boolean_expression OR boolean_expression

在此语法中,boolean_expression是任何有效的布尔表达式,其计算结果为:truefalseunknown

下表显示了组合:TRUEFALSEUNKNOWNOR运算符的结果:

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,24的产品:

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;

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

在这个例子中,使用了ORAND运算符。 与往常一样,SQL Server首先评估AND运算符。 因此,查询返回品牌编号(brand_id)为4且价格大于100的产品或品牌编号(brand_id)为3的产品。

要查找品牌编号(brand_id)为34且价格大于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;

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


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