SQL Server (Transact-SQL) WHERE 子句条件可以使用 AND、OR 和 NOT 运算符进行组合。这些运算符用于处理多个条件。

  • AND - 用于组合多个条件,如果 AND 运算符分隔的所有条件都为 true,则显示一条记录。
  • OR - 用于组合多个条件,如果用 OR 运算符分隔的任何条件为true,则显示一条记录。
  • NOT - 用于显示指定条件不成立的记录。

语法

在 SQL Server (Transact-SQL) 中使用这些运算符的语法是如下所示:

/* AND 操作符*/
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition1 AND condition2 AND condtion3 ....;

/* OR 操作符*/
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition1 OR condition2 OR condtion3 ....;

/* NOT 操作符*/
SELECT column1, column2, column3, ...
FROM table_name
WHERE NOT condition; 

示例:

考虑一个名为Employee的数据库表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

AND 示例:选择 Employee 表中 Salary 为的所有记录大于2800且年龄小于30,查询如下:

SELECT * FROM Employee
WHERE Salary > 2800 AND Age < 30; 

以下代码的结果将是:

EmpIDNameCityAgeSalary
1JohnLondon253000
5RameshNew Delhi283000

OR 示例:选择 Employee 表中 Salary 大于 2800 或 年龄小于25,查询如下。

SELECT * FROM Employee
WHERE Salary > 2800 OR Age < 25; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
4KimAmsterdam303100
5RameshNew Delhi283000

NOT 示例:要选择 Employee 表中 City 不是"New Delhi"的所有记录,查询如下。

SELECT * FROM Employee
WHERE NOT City = 'New Delhi'; 

查询结果如下:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
6HuangBeijing282800