Sql SSI将多个列合并为一个具有空值的列

Sql SSI将多个列合并为一个具有空值的列,sql,ssis,Sql,Ssis,我知道以前也有人问过类似的问题,但我有一个独特的案例,前面的答案并没有解决这个问题 我有一个数据库行,其中有5个注释列,我想将它们合并为一个。 例如: 我希望看到以下情况: ID NAME CombinedComment 1 John BLAH BLAH 2 Mary BLAH 3 Sue BLAH BLAH BLAH BLAH BLAH 现在是警告 1. I cannot use SQL

我知道以前也有人问过类似的问题,但我有一个独特的案例,前面的答案并没有解决这个问题

我有一个数据库行,其中有5个注释列,我想将它们合并为一个。 例如:

我希望看到以下情况:

    ID      NAME    CombinedComment
    1       John    BLAH BLAH
    2       Mary    BLAH
    3       Sue     BLAH BLAH BLAH BLAH BLAH
现在是警告

1. I cannot use SQL to join the data. The data comes from a linked server via a stored procedure. This is the usual response to this problem.
2. I cannot modify the stored procedure.
3. I am using a Derived Column and using the following:

    Combined      CMT1 + " " + CMT2  + " " + CMT3  + " " + CMT4  + " " + CMT5

This works only for rows that have a value in ALL 5 comment fields. 

因此,总而言之,我希望组合注释列适用于所有行,即使其他注释字段中有null。

在派生列转换中使用

ISNULL(CMT1)? "":CMT1 


在注释字段周围。

如何才能获得所有5列?ISNULL(CMT1)?“”:CMT1+“”+ISNULL(CMT2)?“:CMT2…?我认为ReplaceNULL最适合您。因此--REPLACENULL(CMT1,“+”)+REPLACENULL(CMT2,“+”)+REPLACENULL(CMT3,“+”)+REPLACENULL(CMT4,“+”)+REPLACENULL(CMT5,”)看起来REPLACENULL可以解决我的问题,但在ssis 2008中不可用:(我以前使用了Isnull(CMT1)?”:CMT1与您的示例类似,但仍然不起作用。我将它们括在().like(Isnull(cmt1)?:cmt1)并使用了您的replacenull示例。非常感谢。然后继续使用Isnull上的条件-Isnull(cmt1)?:cmt1+“”+Isnull(CMT2)?:CMT2+“”+Isnull(CMT4)?:CMT4+“”+Isnull(CMT5)?“”:CMT5I使用了与您刚才所说的类似的东西,刚刚有()在每个IsNull周围。(IsNull(CMT1)?“”:CMT1)++“”(IsNull(CMT2)?“”:CMT2)++“”(IsNull(CMT3)?“”:CMT3)++“”(IsNull(CMT4)?“”:CMT4)++“”(IsNull(CMT5)?“”:CMT5)。再次感谢。
ISNULL(CMT1)? "":CMT1 
REPLACENULL(CMT1,"")