22 - Funciones matemáticas.


Las funciones matemáticas realizan operaciones con expresiones numéricas y retornan un resultado, operan con tipos de datos numéricos.

Las funciones numéricas aceptan parámetros de entrada de tipo numérico y retornan valores numéricos.

Oracle tiene algunas funciones para trabajar con números. Aquí presentamos algunas.

- abs(x): retorna el valor absoluto del argumento "x". Ejemplo:

 select abs(-20) from dual;--retorna 20.

La tabla dual es una tabla virtual que existe en todas las Bases de datos Oracle.

- ceil(x): redondea a entero, hacia arriba, el argumento "x". Ejemplo:

 select ceil(12.34) from dual;--retorna 13.

- floor(x): redondea a entero, hacia abajo, el argumento "x". Ejemplo:

 select floor(12.34) from dual; --12

- mod(x,y): devuelve el resto de la división x/y. Ejemplos:

 select mod(10,3) from dual;--retorna 1.
 select mod(10,2) from dual;--retorna 0.

- power(x,y): retorna el valor de "x" elevado a la "y" potencia. Ejemplo:

 select power(2,3) from dual;--retorna 8.

- round(n,d): retorna "n" redondeado a "d" decimales; si se omite el segundo argumento, redondea todos los decimales. Si el segundo argumento es positivo, el número de decimales es redondeado según "d"; si es negativo, el número es redondeado desde la parte entera según el valor de "d". Ejemplos:

 select round(123.456,2) from dual;-- retorna "123.46", es decir, redondea desde el segundo decimal.
 select round(123.456,1) from dual;-- 123.5, es decir, redondea desde el primer decimal.
 select round(123.456,-1) from dual;-- 120, redondea desde el primer valor entero (hacia la izquierda).
 select round(123.456,-2) from dual;-- 100, redondea desde el segundo valor entero (hacia la izquierda).
 select round(123.456) from dual;-- 123.

- sign(x): si el argumento es un valor positivo, retorna 1, si es negativo, devuelve -1 y 0 si es 0. Ejemplo:

 select sign(-120) from dual;--retorna -1
 select sign(120) from dual;--retorna 1

- trunc(n,d): trunca un número a la cantidad de decimales especificada por el segundo argumento. Si se omite el segundo argumento, se truncan todos los decimales. Si "d" es negativo, el número es truncado desde la parte entera. Ejemplo:

 select trunc(1234.5678,2) from dual;--retorna 1234.56
 select trunc(1234.5678,-2) from dual;--retorna 1200
 select trunc(1234.5678,-1) from dual;--retorna 1230
 select trunc(1234.5678) from dual;--retorna 1234

- sqrt(x): devuelve la raiz cuadrada del valor enviado como argumento. Ejemplo:

 select sqrt(9) from dual;--retorna 3

Oracle dispone de funciones trigonométricas que retornan radianes, calculan seno, coseno, inversas, etc.: acos, asin, atan, atan2, cos, cosh, exp, ln, log, sin, sinh, tan, tanh. No las veremos en detalle.

Se pueden emplear las funciones matemáticas enviando como argumento el nombre de un campo de tipo numérico.