4 tips para manejar números y vacíos en Oracle

Manejar números y vacíos en Oracle es bastante común al construir tu query, en este artículo mostraré los principales tips y compartiré un archivo de texto para tu guía. Para temas de fechas he creado tips para manejar fechas con un archivo de guía también.

manejar numeros y vacios oracle

Operaciones aritmeticas

Te muestro con un query de ejemplo considerando las 4 funciones aritméticas, no obstante funciona si los campos son numéricos. Hay que asegurarnos que así sean y sino en los siguientes tips te muestro funciones de conversión y control.

operaciones aritmeticas oracle

Ejemplo:

SELECT DESCRIPCION, VALOR_VENTA+ COMPLEMENTO FROM TB_VENTA ; –suma
SELECT DESCRIPCION, VALOR_VENTA- DESCUENTO FROM TB_vENTA ; — resta
SELECT DESCRIPCIÓN, (VALOR_VENTA – DESCUENTO + COMPLEMENTO )*1.18 FROM TB_venta; –multiplicación
SELECT DESCRIPCIÓN VALOR_TOTAL / 0.18 FROM TB_VENTA ; –división

Nota: En el archivo de texto incluyo la creación de la tabla de ejemplo (TB_VENTA) para poder practicar así como los 2 registros de ejemplo. Si nos damos cuenta de lo sombreado de amarillo es porque uno de los campos está en null , y se soluciona con el tip 3 (Función NVL)

Convertir a número

Esto es útil cuando se sabe que el campo es texto y para que aplique la suma necesitas que dicho campo sea formato numérico. La función más usada es TO_NUMBER. Un tip que te puedo dar es revisar si el número va ser muy grande porque puede aplicar desde la fuente la notación científica (Como en el Excel que parece 123E1 y ahí fallaría la función). Para solucionar es asegurarnos el formato con TO_CHAR y luego recién aplicar el TO_NUMBER.

Ejemplo:

SELECT DESCRIPCION, TO_NUMBER(cant_prod) -1 from tb_venta where id_Venta=2;

Operaciones con vacío (nulos)

Es importante que tengas en cuenta si un campo puede tener nulos porque cambia el resultado. Para ello puedes utilizar la función NVL, el cual si identifica un vacío lo pondrá 0 o el valor que especifiques. Si no se ingresa esta función el resultado será null

Funcion NVL vacios oracle

Ejemplo:

SELECT DESCRIPCION, VALOR_VENTA + NVL(VALOR_COMPLEMENTO, 0) FROM TB_VENTA

En mi trabajo casi muestro un error al dar una información debido que el campo numérico permitía nulos y por ende el query no mostraba la información real. Una forma de mitigar es la opinión es del usuario experto que cuestionó la estadística y al realizar un análisis mayor determinamos con el error y la aplicación de la función NVS en el query

Funciones avanzadas

Con estas funciones podrás manejar operaciones avanzadas respecto a detalles numéricos. Te mostraré situaciones prácticas donde aplicar estas funciones.

Funciones avanzadas números oracle

Round : Sirve para redondear un número que puede ser para valor superior o inferior. Por ejemplo, redondear 14/3=4.666… Si requiero que se muestre los dos dígitos

Trunc: Sirve para obtener el número sin redondear (en la práctica)

Mod: Devuelve el resto de una división

Least: Devuelve el menor de una lista de expresiones

Greatest: Devuelve el mayor de una lista de expresiones.

Te adjunto este archivo de manera gratuita donde consolido las principales sentencias mostradas en este artículo: Archivo Manejar Números Oracle

Manejar números y vacíos en Oracle con estos tips te permitirá construir los script de manera más eficiente. Si quieres revisar otros tips de Oracle relacionados entra al enlace : Tips de Oracle

Suscríbete y recibe tips actualizados gratis