適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
為數學函數,可傳回指定數值運算式的絕對 (正) 值。 (ABS 可將負值變更為正值。ABS 對零或正值沒有任何影響。)
語法
ABS ( numeric_expression )
引數
numeric_expression
精確數值或近似數值資料型別類別目錄的運算式。
傳回類型
傳回類型取決於numeric_expression的輸入類型:
| 輸入類型 | 傳回類型 |
|---|---|
| float、real | float |
| 十進位(p, s) | 十進位(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)