Udostępnij za pomocą


ABS (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Funkcja matematyczna, która zwraca bezwzględną (dodatnią) wartość określonego wyrażenia liczbowego. (ABS zmienia wartości ujemne na wartości dodatnie. ABS nie wpływa na wartości zero ani dodatnie.)

Transact-SQL konwencje składni

Składnia

ABS ( numeric_expression )  

Arguments

numeric_expression
Wyrażenie dokładnej kategorii numerycznego lub przybliżonego numerycznego typu danych.

Typy zwracane

Typ zwrotu zależy od typu wejścia numeric_expression:

Typ danych wejściowych Typ zwracany
Float, real float
dziesiętny (p, s) dziesiętny(38, s)
int, smallint, tinyint int
bigint bigint
money, smallmoney pieniędzy
bit float

Jeśli wynik nie pasuje do typu zwrotu, występuje błąd przelewu arytmetycznego.

Przykłady

Ten przykład pokazuje wyniki użycia ABS funkcji na trzech różnych liczbach.

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

Oto zestaw wyników.

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

Funkcja ABS może wywołać błąd przepełnienia, gdy wartość bezwzględna liczby przekracza największą liczbę, jaką dany typ danych może reprezentować. Na przykład int typ danych ma zakres wartości od -2,147,483,648 do .2,147,483,647 Obliczenie wartości bezwzględnej dla numeru -2,147,483,648 całkowitego ze znakiem spowoduje błąd przepełnienia, ponieważ jego wartość bezwzględna przekracza dodatnią granicę zakresu dla danego int typu danych.

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

Zwraca ten komunikat o błędzie:

"Msg 8115, poziom 16, stan 2, linia 3"

"Błąd przepełnienia arytmetyki przekształcający wyrażenie na typ danych int."

Zobacz także

RZUTOWANIE i konwertowanie (Transact-SQL)
Typy danych (Transact-SQL)
Funkcje matematyczne (Transact-SQL)
Wbudowane funkcje (Transact-SQL)