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


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

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

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

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

Синтаксис

expression - expression  

Аргументы

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

Типы результата

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

Примеры

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

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

Применимо к: SQL Server и База данных SQL.

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

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

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

Следующий пример вычитает указанное число дней из даты datetime.

Применимо к: SQL Server и База данных SQL.

-- Uses the AdventureWorks sample database
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  

(1 row(s) affected)

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

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

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

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

См. также

-= (назначение вычитания) (Transact-SQL)
Составные операторы (Transact-SQL)
Арифметические операторы (Transact-SQL)
- (Отрицательное значение) (Transact-SQL)
Типы данных (Transact-SQL)
Выражения (Transact-SQL)
Встроенные функции (Transact-SQL)
SELECT (Transact-SQL)