ABS (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 のウェアハウス
指定した数値式の絶対値 (正値) を返す数学関数です。 (ABS
は、負の値を正の値に変更します。ABS
は、0 または正の値には影響しません)。
構文
ABS ( numeric_expression )
引数
numeric_expression
真数のデータ型または概数のデータ型の式を指定します。
戻り値の型
戻り値の型は、numeric_expression の入力型によって異なります。
入力の種類 | の戻り値の型 : |
---|---|
float、real | float |
decimal(p, s) | decimal(38, s) |
int、smallint、tinyint | int |
bigint | bigint |
money、 smallmoney | 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)