表达式(数据库引擎)

表达式是标识符、值和运算符的组合,SQL Server 可以对其求值以获取结果。访问或更改数据时,可在多个不同的位置使用数据。例如,可以将表达式用作要在查询中检索的数据的一部分,也可以用作查找满足一组条件的数据时的搜索条件。

表达式可以是下列任何一种:

  • 常量

  • 函数

  • 列名

  • 变量

  • 子查询

  • CASE、NULLIF 或 COALESCE

还可以用运算符对这些实体进行组合以生成表达式。

在以下 SELECT 语句中,对于结果集中的每一行,SQL Server 可以将 LastName 解析为一个值。因此,它是一个表达式。

USE AdventureWorks2008R2;
GO
SELECT LastName 
FROM Person.Person;

表达式还可以是计算,如 (price * 1.5) 或 (price + sales_tax)。

在表达式中,请用单引号将字符和 datetime 值括起来。在以下 SELECT 语句中,用作 LIKE 子句模式的字符 B% 必须用单引号括起来:

USE AdventureWorks2008R2;
GO
SELECT LastName, FirstName 
FROM Person.Person 
WHERE LastName LIKE 'Bai%';
GO

在以下 SELECT 语句中,日期值用引号括起来。

USE AdventureWorks2008R2;
GO
SELECT c.FirstName, c.LastName, e.HireDate 
FROM Person.Person c JOIN HumanResources.Employee e 
ON c.BusinessEntityID = e.BusinessEntityID
WHERE e.HireDate = 'July 1, 2007';
GO

在以下示例中,查询使用了多个表达式。例如,Name、SUBSTRING、ProductNumber、ListPrice 和 1.5 都是表达式。

USE AdventureWorks2008R2;
GO
SELECT Name, 
   SUBSTRING('This is a long string', 1, 5) AS SampleText, 
   ProductNumber, 
   ListPrice * 1.5 AS NewPrice
FROM Production.Product;