ABS (Transact-SQL)

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

指定した数値式の絶対値 (正値) を返す数学関数です。 (ABS は、負の値を正の値に変更します。ABS は、0 または正の値には影響しません)。

Transact-SQL 構文表記規則

構文

ABS ( numeric_expression )  

Note

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

引数

numeric_expression
真数のデータ型または概数のデータ型の式を指定します。

戻り値の型

戻り値の型は、numeric_expression の入力型によって異なります。

入力の種類 の戻り値の型 :
floatreal float
decimal(p, s) decimal(38, s)
intsmallinttinyint int
bigint bigint
moneysmallmoney money
bit float

結果が戻り値の型に一致しない合、算術オーバーフロー エラーが発生します。

次の例では、3 つの異なる値に対して ABS 関数を使用した結果を示します。

SELECT ABS(-1.0), ABS(0.0), ABS(1.0);  

結果セットは次のようになります。

---- ---- ----  
1.0  .0   1.0  

ABS 関数では、数値の絶対値が指定のデータ型で表現できる最大値を超えている場合に、オーバーフロー エラーを生成することができます。 たとえば、int データ型の値の範囲が -2,147,483,648 から 2,147,483,647 だとします。 符号付き整数 -2,147,483,648 の絶対値を計算すると、int データ型の正数範囲の上限を超えるため、オーバーフロー エラーが発生します。

DECLARE @i INT;  
SET @i = -2147483648;  
SELECT ABS(@i);  
GO  

次のエラー メッセージが返されます。

"メッセージ 8115、レベル 16、状態 2、行 3"

"式をデータ型 int に変換中に演算のオーバーフロー エラーが発生しました"

関連項目

CAST および CONVERT (Transact-SQL)
データ型 (Transact-SQL)
数学関数 (Transact-SQL)
組み込み関数 (Transact-SQL)