ABS (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

En matematisk funktion som returnerar det absoluta (positiva) värdet av det specificerade numeriska uttrycket. (ABS ändrar negativa värden till positiva värden. ABS har ingen effekt på noll eller positiva värden.)

Transact-SQL syntaxkonventioner

Syntax

ABS ( numeric_expression )  

Arguments

numeric_expression
Ett uttryck för den exakta numeriska eller approximativa numeriska datatypkategorin.

Returtyper

Returtypen beror på indatatypen för numeric_expression:

Inmatningstyp Returtyp
Flyt,äkta float
Decimal(p, s) Decimal(38, s)
int, smallint, tinyint int
bigint bigint
pengar, smallmoney pengar
bit float

Om resultatet inte passar in i returtypen uppstår ett aritmetiskt överflödesfel.

Examples

Detta exempel visar resultaten av att använda ABS funktionen på tre olika tal.

SELECT ABS(-1.0), ABS(0.0), ABS(1.0);  

Här är resultatet.

---- ---- ----  
1.0  .0   1.0  

Funktionen ABS kan ge ett överflödesfel när absolutvärdet av ett tal överstiger det största tal som den angivna datatypen kan representera. Till exempel int har datatypen ett värdeintervall från -2,147,483,648 till 2,147,483,647. Att beräkna absolutvärdet för det signerade heltalet -2,147,483,648 kommer att orsaka ett överflödesfel eftersom dess absoluta värde överskrider den positiva intervallgränsen för datatypen int .

DECLARE @i INT;  
SET @i = -2147483648;  
SELECT ABS(@i);  
GO  

Returnerar detta felmeddelande:

"Meddelande 8115, nivå 16, delstat 2, rad 3"

"Aritmetiskt överflödesfel som konverterar uttryck till datatyp int."

Se även

CAST och CONVERT (Transact-SQL)
Datatyper (Transact-SQL)
Matematiska funktioner (Transact-SQL)
Inbyggda funktioner (Transact-SQL)