Algo similar es:
Código SQL
[-]select razon, rut, giro, coalesce(prueba,'0') from ...
Te paso un ejemplo de cómo lo hago yo para pasar campos numéricos, los paso a una variable de cadena:
Código SQL
[-]CREATE OR ALTER trigger tbapuntes_ai0 for tbapuntes
active after insert position 0
AS
declare variable iMes integer;
declare variable cCampoDebe varchar(8);
declare variable cCampoHaber varchar(8);
declare variable cSql varchar(512);
declare variable cValorDebe varchar(18);
declare variable cValorHaber varchar(18);
begin
if (new.codigoestadoapunte=2) then
begin
update tbSaldosCuentas
set debetotal=debetotal+new.debe,
habertotal=habertotal+new.haber
where codigoempresa=new.codigoempresa
and ejercicio=new.ejercicio
and codigocuenta=new.codigocuenta;
end
else
begin
iMes = extract(month from new.fechaasiento);
cCampoDebe = 'debe' || cast(iMes as varchar(2));
cCampoHaber = 'haber' || cast(iMes as varchar(2));
cValorDebe = cast(new.debe as varchar(18));
cValorHaber = cast(new.haber as varchar(18));
cSql = 'update tbsaldoscuentas '||
'set debetotal=debetotal+'||cValorDebe||
',habertotal=habertotal+'||cValorHaber||','||
cCampoDebe || '=' || cCampoDebe || '+'||cValorDebe||','||
cCampoHaber || '=' || cCampoHaber || '+'||cValorHaber||
' where codigoempresa='||cast(new.codigoempresa as varchar(18))||
' and ejercicio='||cast(new.ejercicio as varchar(18))||
' and codigocuenta='||''''||new.codigocuenta||'''';
execute statement cSql;
end
end
^