2011-09-29 4 views
7

Je dois concaténer 2 colonnes (ex: FIRSTANME et LASTNAME).
je le fais de cette façon:DB2: comment concaténer des chaînes nulles dans DB2?

FIRSTNAME || ' ' || LASTNAME`. 

Si l'un d'eux est nul, mais l'autre est non nul, je reçois null comme résultat de concaténation.
Et je veux comportement suivant

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

Comment résoudre cela dans DB2?

Répondre

13

Utilisez coalesce

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

ou en utilisant le || opérateur concat

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

Notez que IBM recomments en utilisant le mot-clé concat et non l'opérateur ||.

Concat: 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