次の方法で共有


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

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス

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

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

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

Transact-SQL 構文表記規則

構文

- numeric_expression

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

numeric_expression

日付と時刻のカテゴリを除く、数値データ型カテゴリのいずれかのデータ型の有効な

戻り値の型

numeric_expression のデータ型を返します。ただし符号なし tinyint 型の式は例外で、この場合の結果は符号ありの smallint 型になります。

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)

この記事の 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

E. 列の負の値を返す

単項負は、列の値の数値演算子を逆にします。 その結果、負の値は正の値から返され、正の値は負の値から返されます。

次の例では、DimEmployee テーブルの各従業員に対し、BaseRate 値の負の値を返します。

USE ssawPDW;
GO

SELECT - BaseRate
FROM DimEmployee;