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


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

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка аналитики SQL в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в предварительном просмотре Microsoft Fabric

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

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

Syntax

expression - expression

Arguments

expression

Любое допустимое выражение любого из типов данных категории числовых типов данных, за исключением битового типа данных. Нельзя использовать с типами данных date, time, datetime2 или datetimeoffset .

Return types

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

Examples

Примеры кода в этой статье используют базу данных образца AdventureWorks2022 или AdventureWorksDW2022, которую можно скачать с домашней страницы образцов и проектов сообщества 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 и система платформы аналитики (PDW)

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

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

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