Condividi tramite


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)