Oracle
 sql >> Database >  >> RDS >> Oracle

Funzione ABS() in Oracle

In Oracle, ABS() funzione restituisce il valore assoluto del suo argomento.

Il valore assoluto è il valore non negativo di un numero reale indipendentemente dal suo segno. Descrive la distanza da zero a cui si trova un numero sulla linea dei numeri, senza considerare la direzione.

Sintassi

Il ABS() la sintassi della funzione è questa:

ABS(n)

Dove n può essere qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.

La funzione restituisce lo stesso tipo di dati del tipo di dati numerico dell'argomento.

Esempio

Ecco un esempio da dimostrare:

SELECT ABS(-7)
FROM DUAL;

Risultato:

   ABS(-7) 
__________ 
         7 

Il valore assoluto di -7 è 7 .

Questo è esattamente lo stesso risultato che otterremmo se avessimo superato un 7 positivo :

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

Risultato:

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

Valori Nulli

Passaggio null a ABS() restituisce null :

SET NULL 'null';

SELECT ABS(null)
FROM DUAL;

Risultato:

   ABS(NULL) 
____________ 
        null 

Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che si verifica un valore nullo come risultato di un SQL SELECT dichiarazione.

Tuttavia, puoi utilizzare SET NULL per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null deve essere restituito.

Conteggio argomenti errato

Chiamando ABS() senza passare alcun argomento restituisce un errore:

SELECT ABS()
FROM DUAL;

Risultato:

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:

E il passaggio del numero errato di argomenti genera un errore:

SELECT ABS(1, 2)
FROM DUAL;

Risultato:

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: