SSIS条件分割 - 每个输出的多个条件

时间:2015-01-06 16:20:48

标签: ssis split conditional

是否可以使用条件拆分根据3个标准​​对行进行评分?

如果我可以避免它,我宁愿不创建树

基本上要做这样的事情(注意所有输出来自单个条件分割)

输出1 (得分0)
Field1 == 0&& Field2 == 0&& Field3 == 0

输出2 (得分1)
(Try1 == 1&& Try2 == 0&& Try3 == 0)||
(Try1 == 0&& Try2 == 1&& Try3 == 0)||
(Try1 == 0&& Try2 == 0&& Try3 == 1)

输出3 (分数2)
(Field1 == 1&& Field2 == 1&& Field3 == 0)||
(Field1 == 1&& Field2 == 0&& Field3 == 1)||
(Field1 == 0&& Field2 == 1&& Field3 == 1)

输出4 (得分3)
Field1 == 1&& Field2 == 1&& Field3 == 1

当然输出1和4很容易实现,但是我可以创建输出2和3而不创建条件分割的树系统来评估每一行的每次尝试吗?

非常感谢

2 个答案:

答案 0 :(得分:2)

在条件拆分形状放入派生列形状之前,该形状使用以下表达式创建名为Score的新列:

(DT_I4)[Field1] + (DT_I4)[Field2] + (DT_I4)[Field3]

然后在您的条件分割中,四个分支比较分数列,如下所示:

Score == 0
Score == 1
Score == 2
Score == 3

答案 1 :(得分:0)

一般要注意的事项。

条件拆分将按顺序评估选项。因此,如果您首先定义输出1和输出4流,那么您不必担心条件分割树,假设我理解了您的意思

如果这些是整数,您可以使用数学来确定总分。

Field1 + Field2 + Field3 + Field4 == 0

Field1 + Field2 + Field3 + Field4 == 1

Field1 + Field2 + Field3 + Field4 == 2

Field1 + Field2 + Field3 + Field4 == 3

或者只是计算一个名为TotalScore的新列并将其设为TotalScore == 0

如果它是布尔值,那么可能有一些我早就忘记的真值表/逻辑运算会简化这一点。