2015-11-28 54 views
0

包含具有case語句的空值的字符串連接字符串我試圖創建一個字符串,插入到新表中的列中,該字段是從另一個表中的多個列構建的。從TSQL

舉個例子:

Source table 
    Value_1 : '10' 
    Value_2 : '30' 
    Value_3 : '120'; 

Destination table 
    Column A : '10,30,120,'; 

所以我的代碼如下:

INSERT INTO DESTINATION TABLE 
    Value_1 + ',' + 
    Value_2 + ','+ 
    Value_3 +','; 

這種運作良好。我的問題是,如果源表中的一列等於NULL,那麼我的連接字符串結果爲NULL。

Source table 
    Value_1 : '10' 
    Value_2 : NULL 
    Value_3 : '120' 

結果

Destination table 
    Column A : NULL 

如果在源表中的值中的一個是NULL,我想字符串的那一部分只是有「0」作爲值。

換句話說,我所期望的輸出是:

Column A : '10,0,120,'; 

有人能告訴我的語法來實現這一目標?

如果是相關的,我使用的是MSSQL服務器2014年

回答

0

原因是NULL + Anything = NULL,使用ISNULLCOALESCE功能,以取代0當值是NULL

isnull(Value_1,0) + ',' + 
isnull(Value_2,0) + ','+ 
isnull(Value_3,0) +','