![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#6
|
|||
|
|||
|
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'; Código:
Tabla de ejemplo CREATE TABLE "MONEDAS" ( "COD_MON" INTEGER NOT NULL, "CVN_MON" INTEGER ); 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; 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.... Última edición por chutipascal fecha: 21-06-2003 a las 13:59:41. |
|
|
|