2011-09-29 130 views
7

Tengo que concatenar 2 columnas (por ejemplo, FIRSTANME y LASTNAME).
lo hago de esta manera:DB2: ¿Cómo concatenar cadenas nulas en DB2?

FIRSTNAME || ' ' || LASTNAME`. 

Si uno de ellos es nula, pero el otro no es nulo, me sale nulo como resultado la concatenación.
y quiero siguiente comportamiento

FIRSTNAME = null and LASTNAME = "Smith" ==> 
    FIRSTANME || ' ' || LASTNAME == ' Smith'. 

¿Cómo resolver esto en DB2?

Respuesta

13

Uso coalesce

... 
CONCAT(COALESCE(firstname,'') , COALESCE(lastname,'')) 

O usando el operador || concat

... 
COALESCE(firstname,'') || COALESCE(lastname,'') 

Tenga en cuenta que recomments IBM usando la palabra clave concat y no el operador ||.

de concatenación: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.sqlref%2Ffconc.htm
Coalesce: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.sqlref%2Ffcoal.htm