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.
Tabla de Contenido
Operaciones aritméticasConvertir a NúmeroA
Operaciones con Vacíos
Funciones Avanzadas
Video
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.
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
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.
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