次の方法で共有


単項演算子 - 負 (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウスMicrosoft Fabric の SQL データベース

数値式について負の値を返します (単項演算子)。 単項演算子は、数値型に分類されるデータ型の 1 つの式に対してだけ操作を実行します。

Operator Meaning
+ (単項陽性) 数値は正の値です。
- (単項否定) 数値は負の値です。
~ (ビット演算子 NOT) 数値の 1 の補数を返します。

+ (正) および- (負) 演算子は、数値データ型カテゴリのいずれかのデータ型の任意の式で使用できます。 ~ (ビットごとの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)

この記事のコード サンプルでは、AdventureWorks2025 または AdventureWorksDW2025 サンプル データベースを使用します。このサンプル データベースは、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;