在SQL Server(Transact-SQL)的AND 条件(也称为AND运算符)是用于测试在SELECT,INSERT,UPDATE,或DELETE语句中的两个或多个条件。



语法

在SQL Server(Transact-SQL中)AND条件的语法如下:



WHERE condition1 AND condition2 ... AND condition_n;



参数及说明

condition1, condition2, ... condition_n

所有必须满足选择记录的条件



注意

  • SQL Server AND条件允许您测试2个或更多的条件;
  • SQL Server AND条件要求的所有条件(如:condition1, condition2, condition_n)必须满足时才会将记录包含在结果集中返回;


示例 - SELECT语句中使用

第一个SQL Server AND条件查询SELECT语句涉及2个条件。

例如:



SELECT *
FROM employees
WHERE last_name = 'Smith'
AND employee_id < 499;



在这个 SQL Server AND示例将返回 last_name 是 “Smith” 并且 employee_id 小于 499 的员工记录,因为在SELECT语句中使用 “*” 符号,从 employees 表中返回结果集中的所有员工信息将会列出所有字段。



示例 - 在连接表中使用

我们的下一个SQL Server AND示例是显示 AND条件怎么在SELECT语句中连接多个表。

例如:



SELECT employees.employee_id, contacts.last_name
FROM employees, contacts
WHERE employees.employee_id = contacts.contact_id
AND employees.first_name = 'Sarah';



虽然上面的SQL没有什么问题,也可以使用传统 SQL INNER JOIN 写法应用如下。

例如:



SELECT employees.employee_id, contacts.last_name
FROM employees
INNER JOIN contacts
ON employees.employee_id = contacts.contact_id
WHERE employees.first_name = 'Sarah';



这个SQL Server AND条件示例中,将返回所有 employees 表中的 first_name 为 “Sarah”。而 employees 和 contacts 表的连接是从 employees 表中的 employee_id 字段,以及 contacts 表中的contact_id 字段来作连接。在这里您会发现所有的字段都使用表名前缀(如:contacts.last_name)。这是需要消除被引用字段的歧义; 因为在 employees 和 contacts 表中有同时存在两个字段名称相同。

在这种情况下,结果集将仅显示 employee_id 和 last_name 字段(如在SELECT语句的第一部分中列出的)。



示例 - 在INSERT语句中使用

接下来我们看一个 SQL Server AND 示例,演示如何在INSERT语句中使用AND条件。

例如:


INSERT INTO contacts
(contact_id, last_name, first_name)
SELECT employee_id, last_name, first_name
FROM employees
WHERE first_name = 'Joanne'
AND employee_id >= 800;


这个 SQL Server AND 条件例子就是将数据插入到 contacts 表中,所有 employee_id, last_name, 和 first_name 这些记录是从 employees 表按条件查询提取出来,其中 first_name 为 "Joanne" 和 EMPLOYEE_ID 大于或等于800。





示例 - 在UPDATE语句中使用

这个 SQL Server AND 条件示例演示在UPDATE语句中如何使用AND条件。

例如:



UPDATE employees
SET last_name = 'Johnson'
WHERE last_name = 'TBD'
AND employee_id < 300;



这个 SQL Server AND 条件示例将更新 employees 表中那些 last_name 的值是 'TBD' 并且 employee_id 小于 300 的记录,将这些记录的 last_name 值更新为 'Johnson' 。





示例 - 在DELETE语句中使用

最后,这个 SQL Server AND 示例将演示在DELETE语句中如何使用AND条件。

例如:



DELETE FROM employees
WHERE first_name = 'Darlene'
AND last_name = 'Henderson';



这个SQL Server AND 条件的例子就是从 employees  表,删除所有 first_name  是 'Darlene' 和 last_name 是  'Henderson' 的记录。