📜  MS SQL Server 中的 Where 子句(1)

📅  最后修改于: 2023-12-03 15:03:03.453000             🧑  作者: Mango

MS SQL Server 中的 WHERE 子句

在 MS SQL Server 中,WHERE 子句用于筛选出符合特定条件的记录,它是 SQL 语言的一部分。在查询时,经常需要仅仅选择匹配特定条件的数据行。WHERE子句即可实现这个要求。

语法

SELECT column1, column2, ... FROM table_name WHERE condition;

其中,

  • SELECT column1, column2, ...: 定义需要查询的列;
  • FROM table_name: 定义需要查询的表名;
  • WHERE condition: 定义需要查询的条件。

在 WHERE 子句中,condition 是一个逻辑表达式,只有表达式的值为 True 的记录才会被返回。

使用示例

例如,我们有一个名为 employees 的表,其中包含以下列:id、name、age、gender、salary、department_id。现在,我们需要查询工资高于 5000 元且部门编号为 01 的成员信息,可以使用以下语句:

SELECT id, name, age, gender, salary
FROM employees
WHERE salary > 5000 AND department_id = '01';
过滤器语法

在 WHERE 子句中,可以使用以下语句创建逻辑表达式:

  • 等于(=): SELECT * FROM employees WHERE gender = 'male'
  • 不等于(<>): SELECT * FROM employees WHERE age <> 30
  • 大于(>):SELECT * FROM employees WHERE salary > 5000
  • 小于(<):SELECT * FROM employees WHERE salary < 5000
  • 大于等于(>=):SELECT * FROM employees WHERE age >= 30
  • 小于等于(<=):SELECT * FROM employees WHERE age <= 30
  • between 操作符:SELECT * FROM employees WHERE age BETWEEN 25 AND 35
  • in 操作符:SELECT * FROM employees WHERE department_id in ('01', '02')
  • not in 操作符:SELECT * FROM employees WHERE department_id not in ('01', '02')
  • like 操作符:SELECT * FROM employees WHERE name like '%Kim%'
  • not like 操作符:SELECT * FROM employees WHERE name not like '%Kim%'
  • is null 操作符:SELECT * FROM employees WHERE name is null
  • is not null 操作符:SELECT * FROM employees WHERE name is not null
逻辑操作符

在 WHERE 子句中使用以下逻辑操作符可以创建更复杂的子句:

  • AND 操作符:SELECT * FROM employees WHERE department_id = '01' AND salary > 5000
  • OR 操作符:SELECT * FROM employees WHERE department_id = '01' OR department_id = '02'
  • NOT 操作符:SELECT * FROM employees WHERE NOT department_id = '01'
总结

WHERE 子句是 SQL 语句中的一个非常重要的组成部分,可以让我们根据特定的条件检索出表中的数据。在编写 WHERE 子句时,我们需要注意逻辑操作符和过滤器语法的使用方式以及语法的正确性,以确保我们能够得到正确的查询结果。