SQL AND & OR 运算符

在 SQL Server 中,AND 和 OR 等逻辑运算符将用于 WHERE 子句,以对 SELECT 语句返回的记录应用更多筛选器。

SQL AND、OR 运算符示例:我们想在亚马逊网站上订购鞋子。 当我们在搜索栏中输入“鞋子”时,它会显示成千上万双鞋子。 然而,要挑选一双鞋,我们必须使用各种筛选器,例如价格在 2000 到 2500 之间,品牌=Nike 或 Adidas,尺码=9。

如果我们使用上述筛选器,它将显示符合上述要求的鞋子,以便我们轻松选择。 让我们看看内部发生了什么(针对亚马逊数据库的查询)。 SQL Server 逻辑 AND OR 运算符的查询将如下所示

SELECT [Product Name], [Size], [Brand], [Price], [Discount]
FROM [Products_table]
WHERE ([Product Name] = 'Shoes') AND 
      (Brand = 'Nike' OR 'Adidas') AND
      ([Size] = 9) AND 
      ([Price] BETWEEN 2000 AND 2500)

从上面的查询中,可以观察到我们使用了逻辑 AND、OR 运算符来应用多个筛选器。 让我们看看如何在  WHERE 子句 中使用逻辑 AND 和 OR 运算符,以便在提取数据之前使用 SELECT 语句进行筛选。 我们将使用下面显示的数据通过示例来解释 AND 和 OR 运算符。

SQL Server AND & OR 运算符示例

以下是逻辑 AND 和 OR 示例列表。

AND 运算符

AND 运算符用于在 WHERE 子句中测试多个条件。 只有当所有条件都为 TRUE 时,SELECT 语句才会显示记录。

SELECT [FirstName]
      ,[LastName]
      ,[YearlyIncome]
      ,[Education]
      ,[Occupation]
 FROM [Customer]
 WHERE [Education] = 'Bachelors' AND 
       [Occupation] = 'Professional'

上述语句将检索 Customer 表中所有教育程度恰好为“学士”且职业恰好为“专业人士”的客户。

Logical AND Operator 1

让我们使用逻辑 AND 应用三个条件。

SELECT [FirstName]
      ,[LastName]
      ,[YearlyIncome]
      ,[Education]
      ,[Occupation]
 FROM [Customer]
 WHERE [Education] = 'Bachelors' AND 
       [Occupation] = 'Professional' AND
       [YearlyIncome] = 70000

上述语句选择 Customer 表中所有教育程度恰好为“学士”,职业恰好为“专业人士”的客户记录。 此外,他的年收入恰好为 70000。

SQL Server OR 运算符

OR 运算符用于在 WHERE 子句中测试多个条件。 如果任何一个条件为 TRUE,它就会显示记录。

让我们使用 OR 运算符对单个列(即职业)应用筛选器

SELECT [FirstName]
      ,[LastName]
      ,[YearlyIncome]
      ,[Education]
      ,[Occupation]
FROM [Customer]
WHERE [Occupation] = 'Management' OR
      [Occupation] = 'Professional'

之前的语句将获取 Customer 表中所有职业为“管理”或“专业人士”的客户。

Logical OR Operator Example 1

让我们使用逻辑 OR 对多个列应用筛选器。

SELECT [FirstName]
      ,[LastName]
      ,[YearlyIncome]
      ,[Education]
      ,[Occupation]
FROM [Customer]
WHERE [Occupation] = 'Professional' OR
      [YearlyIncome] >= 60000

如果 Customers 表中的客户职业为“专业人士”,或者年收入大于或等于 60000,则上述语句将检索所有这些客户。

从上面的截图可以看出,尽管我们要求的是“专业人士”,但由于年收入大于或等于 60000,因此它也显示了“管理”和“技术体力劳动者”的客户。

SQL 组合 AND、OR 运算符

通常,我们可以组合 AND 和 OR 运算符来应用复杂的筛选器。 但是,您必须使用括号。 如果我们忘记了括号,结果将会是错误的。 请注意。

SELECT [FirstName]
      ,[LastName]
      ,[YearlyIncome]
      ,[Education]
      ,[Occupation]
FROM [Customer]
WHERE ([Occupation] = 'Professional' OR 
         [Occupation] = 'Management') AND
      [YearlyIncome] >= 70000

上述语句将检索 Customer 表中所有职业为“管理”或“专业人士”的客户。 此外,他的年收入大于或等于 70000。

Combining AND & OR Operators

让我们更改查询中 AND 和 OR 运算符的位置以检查结果。

SELECT [FirstName]
      ,[LastName]
      ,[YearlyIncome]
      ,[Education]
      ,[Occupation]
FROM [Customer]
WHERE ([Occupation] = 'Professional' AND 
           [Education] = 'Bachelors') OR
      [YearlyIncome] >= 60000