SSIS 条件拆分 - 每个输出有多个条件

SSIS Conditional Split - multiple conditions per output

是否可以使用条件拆分根据 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 而无需创建条件拆分树系统来评估每一行的每次尝试吗?

非常感谢

一般注意事项。

条件拆分将按顺序评估选项。因此,如果您首先定义输出 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

如果它是布尔值,那么可能有一些我早就忘记的真实 table/logic 操作可以简化这个。

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

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

然后在您的 Conditional Split 中,四个分支比较 Score 列,如下所示:

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