Поделиться через


– (вычитание) (Transact-SQL)

Applies to:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

Вычитает одно число из другого (оператор арифметического вычитания). Также можно вычесть из даты определенное число дней.

Соглашения о синтаксисе Transact-SQL

Syntax

expression - expression

Arguments

expression

Any valid expression of any one of the data types of the numeric data type category, except the bit data type. Can't be used with date, time, datetime2, or datetimeoffset data types.

Return types

Возвращает результат типа данных аргумента с более высоким приоритетом. Дополнительные сведения см. в разделе "Приоритет типа данных".

Examples

Примеры кода в этой статье используют базу данных образца AdventureWorks2022 или AdventureWorksDW2022, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.

A. Использование вычитания в инструкции SELECT

В следующем примере вычисляется разница в налоговой ставке между государством или провинцией с самой высокой налоговой ставкой и государством или провинцией с самой низкой налоговой ставкой.

Applies to: SQL Server and SQL Database.

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

Можно изменить порядок выполнения, используя скобки. Сначала производятся вычисления выражений в скобках. В случае вложенных скобок вычисления начинаются с самого глубокого уровня.

B. Использование вычитания даты

The following example subtracts several days from a datetime date.

Применимо к: 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 и система платформы аналитики (PDW)

C. Использование вычитания в инструкции SELECT

В следующем примере вычисляется разница базовых окладов между сотрудником с наибольшим базовым окладом и сотрудником с наименьшей налоговой ставкой из таблицы dimEmployee.

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