Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Applies to:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL 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;