【发布时间】:2012-01-29 19:18:56
【问题描述】:
我正在尝试检查是否有任何列已更改。我试过把所有条件都放在:
Taxes != (ISNULL(LookupTaxes) ? 0 : LookupTaxes) || Checksum != (ISNULL(LookupChecksum) ? 0 : LookupChecksum) || FeeIncome != (ISNULL(LookupFeeIncome) ? 0 : LookupFeeIncome) || CommissionReceived != (ISNULL(LookupCommissionReceived) ? 0 : LookupCommissionReceived) || CommissionPaid != (ISNULL(LookupCommissionPaid) ? 0 : LookupCommissionPaid) || Premium != (ISNULL(LookupPremium) ? 0 : LookupPremium)
但这总是返回FALSE,尽管我已经手动更改了税费。如果我把每个条件分开而不是工作,例如:
Taxes != (ISNULL(LookupTaxes) ? 0 : LookupTaxes)
返回TRUE。如果我对每列使用 6 个条件(而不是 1 个)并将结果输出到 Union All 中,这种方法是否可以满足我的需求?我最担心的是行是否会重复。我已经检查过,看起来它们不是,但我想知道为什么当我更改了两列(与这两个条件相关)时,为什么某些条件会选择 X 记录和另一个 Y。例如,所有税和保费列都已更改。在 Conditional Split 输出“Taxes has changed”条件下选取 1,000,000 行,“Premium has changed”选取 100 行。我知道这对我的情况没有任何影响,因为对我来说,获取这些行进行更新很重要,但我只是对这件事的工作原理感到困惑。
【问题讨论】:
标签: ssis split conditional conditional-statements