在数据流中,我有一个派生列任务。在其中一列的表达式中,我有以下表达式:
[siteid] == "100" ? "1101" : [siteid] == "110" ? "1001" : [siteid] == "120" ? "2101" : [siteid] == "140" ? "1102" : [siteid] == "210" ? "2001" : [siteid] == "310" ? "3001" : [siteid]
这很好用。但是,我打算在至少十几个其他地方重用它,所以我想将它存储到变量中并使用派生列中的变量而不是硬编码表达式。当我尝试使用上面的表达式创建变量时,我收到一个语法错误,说“siteid”未定义。我想这是有道理的,因为它不是。但是如何通过使用变量来使表达式工作?似乎我需要某种方式来告诉它'siteid'将是包含我想要应用表达式的数据的列。
答案 0 :(得分:1)
您不能在变量表达式中使用列名。我担心在SSIS中无法轻易“克隆”这种逻辑。
但是,我建议您不要尝试克隆这样的硬编码逻辑。构造一个引用表并使用Lookup组件来获取该值。这样,如果您的“case”语句发生变化,您只需要进行一次修改 - 您无需在任何地方搜索此逻辑。 Lookup的配置很容易拖放。