El problema reside en el resultado de IFNULL en distintas DBMS, no es el mismo, y les dare la solucion:

sybase> SELECT IFNULL('pepe', 123);

-----------
NULL
mysql> SELECT IFNULL('pepe', 123);

-----------
pepe


El resultado esperado lo da COALESCE y sirve estandar en TODAS las DBMS



sybase> SELECT COALESCE('pepe', 123);

-----------
'pepe'
mysql> SELECT COALESCE('pepe', 123), ;

-----------
'pepe'


PORQUE?

se supene que IFNULL arrojara el primer parametro si el segundo es nulo.. pues esto no es asi ent odas las db, algunas solo comprueban esto en vez de arrojar un resultado.. ejemplo mysql solo arroja true o false...

el metodo mas estandar es el de COALESCE que si hace lo esperado

FUENTE mi propio articulo: http://qgqlochekone.blogspot.com/20...s-coalesce.html