共用方式為


一元運算符 - 負數 (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲Microsoft Fabric 中的 SQL 資料庫

傳回數值運算式 (一元運算子) 的負值。 一元運算子只能在屬於數值資料類型類別目錄之任何資料類型的單一運算式上執行運算。

Operator Meaning
+ (一元正數) 數值是正的。
- (一元負數) 數值是負的。
~ (位元 NOT) 傳回數位的補碼。

+ 在數值數據類型類別目錄的任何一個數據類型的任何表達式上,都可以使用 (positive) 和 - (negative) 運算符。 ~ (位NOT) 運算子只能用於整數數據類型類別目錄之任一數據類型的運算式上。

Transact-SQL 語法慣例

Syntax

- numeric_expression

Arguments

numeric_expression

數值數據類型類別目錄的任何一個數據類型的任何有效 表達式 ,但日期和時間類別除外。

傳回類型

傳回 numeric_expression的數據類型,不同之處在於未帶正負號 的 tinyint 表達式會升階為帶正負號 的 smallint 結果。

Examples

A. 將變數設定為負值

下列範例會將變數設為負值。

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 和 Analytics Platform System (PDW)

本文中的程式代碼範例會使用 AdventureWorks2025AdventureWorksDW2025 範例資料庫,您可以從 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

E. 傳回數據行的負值

一元負值會反轉數據行值的數值運算符。 因此,負值會從正值傳回,而正值會從負值傳回。

下列範例會傳回 BaseRate 資料表中每一位員工 DimEmployee 值的負值。

USE ssawPDW;
GO

SELECT - BaseRate
FROM DimEmployee;