ABS (Transact-SQL)
適用対象: 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 )
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
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)