Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função ABS() no Oracle


No Oracle, o ABS() função retorna o valor absoluto de seu argumento.

O valor absoluto é o valor não negativo de um número real sem levar em conta seu sinal. Ele descreve a distância de zero que um número está na reta numérica, sem considerar a direção.

Sintaxe


O ABS() a sintaxe da função é assim:
ABS(n)

Onde n pode ser qualquer tipo de dados numérico ou qualquer tipo de dados não numérico que possa ser convertido implicitamente em um tipo de dados numérico.

A função retorna o mesmo tipo de dados que o tipo de dados numérico do argumento.

Exemplo


Segue um exemplo para demonstrar:
SELECT ABS(-7)
FROM DUAL;

Resultado:
   ABS(-7) 
__________ 
         7 

O valor absoluto de -7 é 7 .

Esse é exatamente o mesmo resultado que obteríamos se tivéssemos passado um 7 positivo :
SELECT 
    ABS(7),
    ABS(-7)
FROM DUAL;

Resultado:
   ABS(7)    ABS(-7) 
_________ __________ 
        7          7 

Valores nulos


Passando null para ABS() retorna null :
SET NULL 'null';

SELECT ABS(null)
FROM DUAL;

Resultado:
   ABS(NULL) 
____________ 
        null 

Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que um valor nulo ocorre como resultado de um SQL SELECT demonstração.

No entanto, você pode usar SET NULL para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null deve ser devolvido.

Contagem incorreta de argumentos


Chamando ABS() sem passar nenhum argumento retorna um erro:
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:

E passar o número errado de argumentos resulta em um erro:
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: