如何在条件拆分条件中从变量传递列名

时间:2011-10-18 09:51:06

标签: ssis

我创建了SSIS包。我在这里有一个数据流任务,我有OLE DB DataSource,它从数据库中的某些表加载记录。表名是以编程方式分配的,因此可以输出该DataSource的不同列。我还有条件分割连接到DataSource输出,我想要分割记录。我想在条件分割中设置条件,我想做类似的事情:

@[User::ConditionColumnName] >= @[User::SomeValue]

其中@ [User :: SomeValue]是变量的,有一些要比较的值,但@ [User :: ConditionColumnName]是变量的,其中包含DataSource输出中某些列的名称。这个值我将以编程方式分配。 我怎样才能做到这一点?或者可能有其他方法在编译时列分割未知数据?

1 个答案:

答案 0 :(得分:2)

这听起来像是基于行的条件分割。也许您可以将变量值添加到选择列表中(这样您就可以比较一个列)

"SELECT '" + (DT_STR,50,1252)@[User::ConditionColumnName] + "' as MyConditionColumnName, .... FROM ... "

这样你就可以在每条行中使用MyConditionColumnName列,你可以在条件分割中进行比较。

(您可以将此select放入变量并从变量运行sql,可能更容易维护) - 无论哪种方式,您都需要将查询解析为表达式,以便在变量运行之前对其进行求值。