sql >> Base de Datos >  >> RDS >> Oracle

Función ABS() en Oracle

En Oracle, el ABS() función devuelve el valor absoluto de su argumento.

El valor absoluto es el valor no negativo de un número real sin importar su signo. Describe la distancia desde cero a la que se encuentra un número en la recta numérica, sin considerar la dirección.

Sintaxis

El ABS() la sintaxis de la función es así:

ABS(n)

Donde n puede ser cualquier tipo de datos numéricos o cualquier tipo de datos no numéricos que se pueda convertir implícitamente en un tipo de datos numéricos.

La función devuelve el mismo tipo de datos que el tipo de datos numérico del argumento.

Ejemplo

Aquí hay un ejemplo para demostrarlo:

SELECT ABS(-7)
FROM DUAL;

Resultado:

   ABS(-7) 
__________ 
         7 

El valor absoluto de -7 es 7 .

Ese es exactamente el mismo resultado que obtendríamos si hubiéramos pasado un 7 positivo :

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

Resultado:

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

Valores nulos

Pasando null a ABS() devuelve null :

SET NULL 'null';

SELECT ABS(null)
FROM DUAL;

Resultado:

   ABS(NULL) 
____________ 
        null 

De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que se produce un valor nulo como resultado de un SQL SELECT declaración.

Sin embargo, puede usar SET NULL para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null debe ser devuelto.

Recuento de argumentos incorrecto

Llamando a ABS() sin pasar ningún argumento devuelve un error:

SELECT ABS()
FROM DUAL;

Resultado:

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:

Y pasar el número incorrecto de argumentos da como resultado un error:

SELECT ABS(1, 2)
FROM DUAL;

Resultado:

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: