ABS (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Funzione matematica che restituisce il valore assoluto (positivo) dell'espressione numerica specificata. (ABS
modifica i valori negativi in valori positivi. ABS
non ha alcun effetto sui valori zero o positivi).
Convenzioni relative alla sintassi Transact-SQL
Sintassi
ABS ( numeric_expression )
Argomenti
numeric_expression
Espressione della categoria del tipo di dati numerici esatti o numerici approssimati.
Tipi restituiti
Il tipo restituito dipende dal tipo di input di numeric_expression:
Input type | Tipo restituito |
---|---|
float, real | float |
decimal(p, s) | decimal(38, s) |
int, smallint, tinyint | int |
bigint | bigint |
money, smallmoney | money |
bit | float |
Se il risultato non rientra nel tipo restituito, si verifica un errore di overflow aritmetico.
Esempi
L'esempio illustra i risultati dell'uso della funzione ABS
in tre numeri diversi.
SELECT ABS(-1.0), ABS(0.0), ABS(1.0);
Il set di risultati è il seguente.
---- ---- ----
1.0 .0 1.0
La funzione ABS
può produrre un errore di overflow quando il valore assoluto di un numero è maggiore del numero più alto che può essere rappresentato dal tipo di dati specificato. Ad esempio, il tipo di dati int
ha intervallo di valori da -2,147,483,648
a 2,147,483,647
. Il calcolo del valore assoluto per il valore integer con segno -2,147,483,648
provoca un errore di overflow, in quanto il valore assoluto corrispondente è maggiore dell'intervallo positivo per il tipo di dati int
.
DECLARE @i INT;
SET @i = -2147483648;
SELECT ABS(@i);
GO
Restituisce il messaggio di errore seguente:
"Messaggio 8115, livello 16, stato 2, riga 3"
"Errore di runtime: si è verificato un errore di overflow aritmetico durante la conversione del tipo di dati da espressione a int".
Vedi anche
CAST e CONVERT (Transact-SQL)
Tipi di dati (Transact-SQL)
Funzioni matematiche (Transact-SQL)
Funzioni predefinite (Transact-SQL)