Ver Mensaje Individual
  #7  
Antiguo 26-11-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cool

no dudo que la función funcione (valga la redundancia). Tal como comentó Kafu, tiene que ver con el orden de evaluación.

Si Firebird evalua la función antes de hacer el encuentro externo (left/right join), devolverá 'cadena' solamente para aquellas filas que tengan un valor nulo almacenado en la tabla, y al hacer el encuentro, seguirán apareciendo con nulo aquellas para las que no haya habido una fila correspondiente. Exactamente las que son la razon de ser del encuentro externo.

Por el contrario, si primero se realiza el join, y luego se evalua la función, está deberá sustituir por 'cadena' todas aquellas filas que contengan NULL en ese momento. Es decir, por igual aquellas para las que el valor sea NULL en la tabla base, como aquellas que tengan NULL porque no existe un registro en la tabla.

Espero haberme explicado... y que haya alguien que tenga Firebird y haga un par de pruebas, para saber de que manera funciona.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita