sql >> Databasteknik >  >> RDS >> Oracle

ABS() Funktion i Oracle

I Oracle, ABS() funktion returnerar det absoluta värdet av dess argument.

Det absoluta värdet är det icke-negativa värdet av ett reellt tal utan hänsyn till dess tecken. Den beskriver avståndet från noll som ett tal är på tallinjen, utan att ta hänsyn till riktning.

Syntax

ABS() funktions syntax ser ut så här:

ABS(n)

Där n kan vara vilken numerisk datatyp som helst eller vilken icke-numerisk datatyp som helst som implicit kan konverteras till en numerisk datatyp.

Funktionen returnerar samma datatyp som den numeriska datatypen för argumentet.

Exempel

Här är ett exempel att visa:

SELECT ABS(-7)
FROM DUAL;

Resultat:

   ABS(-7) 
__________ 
         7 

Det absoluta värdet av -7 är 7 .

Det är exakt samma resultat som vi skulle få om vi hade klarat en positiv 7 :

SELECT 
    ABS(7),
    ABS(-7)
FROM DUAL;

Resultat:

   ABS(7)    ABS(-7) 
_________ __________ 
        7          7 

Nullvärden

Skickar null till ABS() returnerar null :

SET NULL 'null';

SELECT ABS(null)
FROM DUAL;

Resultat:

   ABS(NULL) 
____________ 
        null 

Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när ett nollvärde inträffar som ett resultat av en SQL SELECT påstående.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null bör returneras.

Inkorrekt antal argument

Anropar ABS() utan att skicka några argument returnerar ett fel:

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:

Och att skicka fel antal argument resulterar i ett fel:

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:

  1. Postgresql COPY-kommandot som ger Behörighet nekad fel

  2. MySQL:finns inte i GROUP BY

  3. Hur man returnerar frågeresultat som en kommaseparerad lista i MySQL

  4. Hur UNIX_TIMESTAMP() fungerar i MariaDB