-(减法)(Transact-SQL)

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

将两个数相减(减法算术运算符)。 还可以从日期中减去以天为单位的数字。

Transact-SQL 语法约定

Syntax

expression - expression

Arguments

expression

数值数据类型类别的任何数据类型的任何有效 表达式 数据类型除外)。 不能与 日期时间datetime2datetimeoffset 数据类型一起使用。

Return types

返回优先级较高的参数的数据类型。 有关详细信息,请参阅 数据类型优先级

Examples

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

A. 在 SELECT 语句中使用减法

以下示例计算最高税率的州或省与税率最低的州或省之间的税率差异。

适用于:SQL Server 和 SQL 数据库。

SELECT MAX(TaxRate) - MIN(TaxRate) AS 'Tax Rate Difference'
FROM Sales.SalesTaxRate
WHERE StateProvinceID IS NOT NULL;
GO

可以使用括号更改执行顺序。 将首先执行括号内的计算。 如果括号有嵌套,则最内层的计算优先。

B. 使用日期减法

以下示例从 日期/时间 日期减去几天。

适用范围:SQL Server 和 SQL 数据库。

DECLARE @altstartdate DATETIME;
SET @altstartdate = CONVERT(DATETIME, 'January 10, 1900 3:00 AM', 101);
SELECT @altstartdate - 1.5 AS 'Subtract Date';

结果集如下。

Subtract Date
-----------------------
1900-01-08 15:00:00.000

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

C. 在 SELECT 语句中使用减法

以下示例计算 dimEmployee 表中,基准费率最高的员工与基准费率最低的员工之间的基准费率差。

SELECT MAX(BaseRate) - MIN(BaseRate) AS BaseRateDifference
FROM DimEmployee;