単項演算子 - 負 (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric Warehouse Microsoft Fabric SQL Database
数値式について負の値を返します (単項演算子)。 単項演算子は、数値型に分類されるデータ型の 1 つの式に対してだけ操作を実行します。
演算子 | 説明 |
---|---|
+ (単項陽性) | 数値は正の値です。 |
- (単項否定) | 数値は負の値です。 |
~ (ビット演算子 NOT) | 数値の 1 の補数を返します。 |
+
(正) および-
(負) 演算子は、数値データ型カテゴリのいずれかのデータ型の任意の式で使用できます。 ~
(ビットごとのNOT
) 演算子は、整数データ型カテゴリのいずれかのデータ型の式でのみ使用できます。
構文
- numeric_expression
引数
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;