这是一个SQL Server Integration Services(SSIS)表达式问题(我对它很新)。
我想在派生列转换中编写一个switch / case表达式 - 基本上,新列可以根据输入列的值有5个不同的可能值。我从谷歌得到的只是(条件)? (真值):(假值)技术,但这仅提供两个可能的值。 SSIS表达式是否具有开关/案例类型表达式?
我想过使用顺序派生列转换,或者创建一个临时查找表,但这看起来确实应该更加复杂。
感谢。
答案 0 :(得分:15)
我使用了if-elseif-else语句的等价来解决问题,如下所示:
(条件1)? (真值1):(条件2)? (真值2):(假值)
答案 1 :(得分:4)
尽管从技术上讲,avesse的答案是有效的,但编写/维护表达并不是最有趣的任务。
为避免在派生列转换中编写复杂表达式,我建议使用脚本转换。这样做可以让您使用.NET代码编写switch语句,编写和维护更好。你的同事会很感激!
答案 2 :(得分:3)
只需将您的?:语句组织为堆叠
@[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]