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