ABS (Transact-SQL)

適用於:Microsoft Fabric 中 Microsoft Fabric倉儲中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 Azure SynapseAnalytics Analytics Platform System (PDW)SQL 分析端點

為數學函數,可傳回指定數值運算式的絕對 (正) 值。 (ABS 可將負值變更為正值。ABS 對零或正值沒有任何影響。)

Transact-SQL 語法慣例

Syntax

ABS ( numeric_expression )  

注意

若要檢視 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

如果結果不符合傳回型別,就會發生算術溢位錯誤。

範例

此範例顯示在三個不同數字上使用 ABS 函數的結果。

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

以下為結果集。

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

當數字的絕對值超過所指定資料型別能表示的最大數字時,ABS 函數可能會產生溢位錯誤。 例如,int 資料型別值的範圍在 -2,147,483,6482,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)