I Oracle er ABS()
funktion returnerer den absolutte værdi af sit argument.
Den absolutte værdi er den ikke-negative værdi af et reelt tal uden hensyn til dets fortegn. Den beskriver afstanden fra nul, som et tal er på tallinjen, uden at tage retningen i betragtning.
Syntaks
ABS()
funktions syntaks ser sådan ud:
ABS(n)
Hvor n
kan være enhver numerisk datatype eller enhver ikke-numerisk datatype, der implicit kan konverteres til en numerisk datatype.
Funktionen returnerer den samme datatype som argumentets numeriske datatype.
Eksempel
Her er et eksempel til demonstration:
SELECT ABS(-7)
FROM DUAL;
Resultat:
ABS(-7) __________ 7
Den absolutte værdi af -7
er 7
.
Det er præcis det samme resultat, som vi ville få, hvis vi havde bestået en positiv 7
:
SELECT
ABS(7),
ABS(-7)
FROM DUAL;
Resultat:
ABS(7) ABS(-7) _________ __________ 7 7
Nul-værdier
Sender null
til ABS()
returnerer null
:
SET NULL 'null';
SELECT ABS(null)
FROM DUAL;
Resultat:
ABS(NULL) ____________ null
Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT
udmelding.
Du kan dog bruge SET NULL
for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null
skal returneres.
Forkert antal argumenter
Kalder ABS()
uden at sende nogen argumenter returnerer en fejl:
SELECT ABS()
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT ABS() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Og at sende det forkerte antal argumenter resulterer i en fejl:
SELECT ABS(1, 2)
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT ABS(1, 2) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: