这是SQL Server Integration Services(SSIS)表达式问题(我对此我很新)。

我想在派生的列变换中编写开关/案例表达式 - 基本上,基于新列可以基于输入列的值具有5个不同的可能值。我从Google那里得到的就是(条件)? (true值):( false值)技术,但这仅提供两个可能的值。 SSIS表达式是否具有开关/案例类型表达式?

我想到使用顺序派生的列变换或创建临时查找表,但这似乎更复杂,应该是应该的。

谢谢。

有帮助吗?

解决方案

我已经使用了相当于if-elseif-else语句来解决问题,这样:

(条件1)? (true value1):(条件2)? (true value2):( false值)

其他提示

即使从技术上讲,Avesse的答案将起作用,但编写/维护表达并不是最有趣的任务。

为了避免在派生的列转换中编写复杂的表达式,我建议使用脚本转换。这样做使您可以使用.NET代码编写 转变 陈述,编写和维护得多。您的同事会很感激!

只需构造您的?:堆叠的语句

@[User::SomeVariable] == 2 ? "SomeVariable is 2"
:
@[User::SomeVariable] == 3 ? "SomeVariable is 3"
:
@[User::SomeVariable] == 4 ? "SomeVariable is 4" 
:
"SomeVariable is not 2,3,4 is actually" + @[User::SomeVariable] 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top