ABS (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse 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 di sintassi Transact-SQL

Sintassi

ABS ( numeric_expression )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

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);  

Questo è il set di risultati.

---- ---- ----  
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)