2011-09-29 17 views
7

Tôi phải nối 2 cột (ví dụ FIRSTANME và LASTNAME).
tôi làm điều đó theo cách này:DB2: Làm thế nào để nối chuỗi rỗng trong DB2?

FIRSTNAME || ' ' || LASTNAME`. 

Nếu một trong số họ là null, nhưng một trong những khác không phải là null, tôi nhận được null như kết quả nối.
Và tôi muốn sau hành vi

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

Làm thế nào để giải quyết việc này trong DB2?

Trả lời

13

Sử dụng coalesce

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

Hoặc sử dụng toán tử || concat

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

Lưu ý rằng IBM recomments sử dụng từ khóa concat và không phải là || điều hành.

concat: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.sqlref%2Ffconc.htm
liên hiệp: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.sqlref%2Ffcoal.htm