Унарные операторы — отрицательные (Transact-SQL)

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

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

Оператор Значение
+ (Унарный положительный) Числовое значение положительно.
- (Унарный отрицательный) Числовое значение отрицательно.
~ (побитовое НЕ) Возвращает дополнение числа.

Операторы + (положительные) и - (отрицательные) можно использовать для любого выражения любого из типов данных категории числовых типов данных. Оператор ~ (битовая NOT) может использоваться только для выражений любого из типов данных категории целочисленных типов данных.

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

Синтаксис

- numeric_expression

Аргументы

numeric_expression

Любое допустимое выражение любого из типов данных категории числовых типов данных, за исключением категории даты и времени.

Типы возвращаемых данных

Возвращает тип данных аргумента numeric_expression с единственным исключением: выражение типа tinyint без знака преобразуется в результат типа smallint со знаком.

Примеры

А. Присвойте переменной отрицательное значение

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

USE tempdb;
GO

DECLARE @MyNumber DECIMAL(10, 2);
SET @MyNumber = -123.45;

SELECT @MyNumber AS NegativeValue;
GO

Вот результирующий набор.

NegativeValue
--------------
-123.45

B. Изменение переменной на отрицательное значение

Следующий пример изменяет значение переменной на отрицательное значение.

USE tempdb;
GO

DECLARE @Num1 INT;
SET @Num1 = 5;

SELECT @Num1 AS VariableValue,
    -@Num1 AS NegativeValue;
GO

Вот результирующий набор.

VariableValue NegativeValue
------------- -------------
5             -5

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

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

C. Возврат отрицательного значения положительной константы

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

USE ssawPDW;
GO

SELECT TOP (1) - 17 FROM DimEmployee;

Вот результирующий набор.

-17

Обратите внимание на тот же результат, что и если унарный отрицательный применяется к значению с унарными унарными операторами — положительным применением.

USE ssawPDW;
GO

SELECT TOP (1) - (+ 17)
FROM DimEmployee;

Вот результирующий набор.

-17

D. Возврат положительного значения отрицательной константы

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

USE ssawPDW;
GO

SELECT TOP (1) - (- 17)
FROM DimEmployee;

Вот результирующий набор.

-17

Е. Возврат отрицательного значения столбца

Унарный отрицательный отменяет числовой оператор значений столбца. В результате отрицательные значения возвращаются из положительных значений, а положительные значения возвращаются из отрицательных значений.

В приведенном ниже примере возвращается отрицательное значение BaseRate для каждого сотрудника в таблице DimEmployee.

USE ssawPDW;
GO

SELECT - BaseRate
FROM DimEmployee;