WHERE (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics分析平台系统(PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 预览版中的 SQL 数据库

指定查询返回的行的搜索条件。

Transact-SQL 语法约定

Syntax

[ WHERE <search_condition> ]

Arguments

< search_condition>

定义要返回的行所要满足的条件。 搜索条件中可以包含的谓词数没有限制。 有关搜索条件和谓词的详细信息,请参阅 搜索条件

Examples

本文中的代码示例使用 AdventureWorks2022AdventureWorksDW2022 示例数据库,可以从 Microsoft SQL Server 示例和社区项目 主页下载该数据库。

下面的示例演示如何在 WHERE 子句中使用某些常见的搜索条件。

A. 使用简单相等性查找行

-- Uses AdventureWorksDW
SELECT EmployeeKey, LastName
FROM DimEmployee
WHERE LastName = 'Smith';

B. 查找包含字符串一部分值的行

-- Uses AdventureWorksDW
SELECT EmployeeKey, LastName
FROM DimEmployee
WHERE LastName LIKE '%Smi%';

C. 使用比较运算符查找行

-- Uses AdventureWorksDW
SELECT EmployeeKey, LastName
FROM DimEmployee
WHERE EmployeeKey <= 500;

D. 查找满足三个条件之一的行

-- Uses AdventureWorksDW
SELECT EmployeeKey, LastName
FROM DimEmployee
WHERE EmployeeKey = 1
      OR EmployeeKey = 8
      OR EmployeeKey = 12;

E. 查找必须满足多个条件的行

-- Uses AdventureWorksDW
SELECT EmployeeKey, LastName
FROM DimEmployee
WHERE EmployeeKey <= 500
      AND LastName LIKE '%Smi%'
      AND FirstName LIKE '%A%';

F. 查找值列表中的行

-- Uses AdventureWorksDW
SELECT EmployeeKey, LastName
FROM DimEmployee
WHERE LastName IN ('Smith', 'Godfrey', 'Johnson');

G. 查找在两个值之间具有值的行

-- Uses AdventureWorksDW
SELECT EmployeeKey, LastName
FROM DimEmployee
WHERE EmployeeKey BETWEEN 100 AND 200;