如何编写SSIS Switch/Case表达式?
-
18-09-2019 - |
题
这是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]
不隶属于 StackOverflow