这是一个SQL Server Integration Services (SSIS)表达式问题(我对此非常陌生)。
我想在派生的列转换中编写一个switch/case表达式-基本上,新列可以有5个不同的可能值,基于输入列的值。我从谷歌得到的只是(条件)?(true value):(false value)技术,但这只提供了两个可能的值。SSIS表达式是否具有switch/case类型表达式?
我想过使用顺序派生列转换,或者创建一个临时查找表,但这似乎比它实际应该做的要复杂得多。
谢谢。
发布于 2009-11-06 20:45:46
我使用了相当于if-else if-else语句的语句来解决这个问题,如下所示:
(condition1)?(真的value1):(condition2)?(true value2):(false值)
发布于 2012-04-18 16:54:51
尽管从技术上讲,avesse的答案可以工作,但编写/维护表达式并不是最有趣的任务。
为了避免在派生列转换中编写复杂的表达式,我建议使用脚本转换。这样做可以让您使用.NET代码编写switch语句,更易于编写和维护。你的同事会很欣赏的!
发布于 2015-06-27 02:36:08
简单地将?:语句构建为堆栈
@[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] https://stackoverflow.com/questions/1686166
复制相似问题