単項演算子 - 正 (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

引数

numeric_expression

datetime および smalldatetime データ型を除く、数値データ型カテゴリのいずれかのデータ型の有効な式。

戻り値の型

データ型を返す numeric_expressionです。

解説

単項プラスは任意の数値式の前に付けることができますが、その式が返す値に対して何の操作も行いません。 具体的には、負の式の正の値は返されません。 負の式の値を正の値として返すには、ABS 関数を使用します。

A. 変数を正の値に設定する

次の例では、変数を正の値に設定します。

USE tempdb;
GO

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

SELECT @MyNumber AS PositiveValue;
GO

結果セットは次のとおりです。

PositiveValue
--------------
123.45

B. 単項プラス演算子を負の値で使用する

次の例は、単項プラスを負の式に使用し、同じ負の式に対して ABS 関数を使用する方法を示しています。 単項プラスは式に影響しませんが、 ABS() 関数は式の正の値を返します。

USE tempdb;
GO

DECLARE @Num1 INT;
SET @Num1 = -5;

SELECT + @Num1 AS NegativeValue,
    ABS(@Num1) AS PositiveValue;
GO

結果セットは次のとおりです。

NegativeValue  PositiveValue
-------------- --------------
-5             5