次の方法で共有


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 または正の値には影響しません)。

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)