Puede ser que haya otras soluciones, pero una forma de hacerlo puede ser esta:
Primero defines la funcion externa DIV
Código:
DECLARE EXTERNAL FUNCTION DIV
INTEGER, INTEGER
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_div' MODULE_NAME 'ib_udf';
Despues en la consulta de por ejemplo esta tabla
Código:
Tabla de ejemplo
CREATE TABLE "MONEDAS"
(
"COD_MON" INTEGER NOT NULL,
"CVN_MON" INTEGER
);
CVN_MON tendria algunos nulos que quieres transformar a 0
para eso usas la función DIV (división sin resto) igualando el divisor a 1.
Código:
select cod_mon, DIV(cvn_mon,1) from monedas;
Ohhh funciona!
De ese modo tiene el nullo transformado a 0.......
Recuerda es un apaño y solo funciona con enteros lo ideal seria tener una función externa para eso.
Si quieres que funcione con 2 decimales puedes hacer algo por el estilo. por ejemplo si CVN_MON fuera NUMERIC(8,2) por ejemplo.
usa esto:
(DIV(cast ((cvn_mon * 100) as integer),1))/100
>>Recuerda comentar profusamente esta sentencia por si alguien viene detras de ti para que pueda entender el porque....