Sql SSI将多个列合并为一个具有空值的列
我知道以前也有人问过类似的问题,但我有一个独特的案例,前面的答案并没有解决这个问题 我有一个数据库行,其中有5个注释列,我想将它们合并为一个。 例如: 我希望看到以下情况: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
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,"")