ABS (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲
為數學函數,可傳回指定數值運算式的絕對 (正) 值。 (ABS
可將負值變更為正值。ABS
對零或正值沒有任何影響。)
語法
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 |
如果結果不符合傳回型別,就會發生算術溢位錯誤。
範例
此範例顯示在三個不同數字上使用 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)