Sql SSIS条件拆分条件

Sql SSIS条件拆分条件,sql,ssis,Sql,Ssis,这种情况有什么缺陷吗?有人能帮我们吗。。。。。。 在这种情况下,我们有6列,其中包含三种类型的电话号码和三个位XPC列,用于每个记录的相应电话号码 我们允许为电话号码列输入空值,其相应的XPC列也将为空 因此,如果这些XPC列中的任何一个包含0,则应将该人员放在一个文件中,如果这些XPC列中的任何一个不包含0但可以包含null,则应将其放在另一个文件中 我正在使用VisualStudio2005 提前感谢试试这个 !(((ISNULL(Phone))&&(ISNULL(Work

这种情况有什么缺陷吗?有人能帮我们吗。。。。。。 在这种情况下,我们有6列,其中包含三种类型的电话号码和三个位
XPC列
,用于每个记录的相应电话号码

我们允许为电话号码列输入空值,其相应的
XPC列
也将为空

因此,如果这些XPC列中的任何一个包含0,则应将该人员放在一个文件中,如果这些XPC列中的任何一个不包含0但可以包含null,则应将其放在另一个文件中

我正在使用VisualStudio2005

提前感谢

试试这个

 !(((ISNULL(Phone))&&(ISNULL(WorkPhone))&&(ISNULL(OtherPhone)))&&(((ISNULL(Phone))||

((!ISNULL(Phone))&&(PhoneXPC==1)))&&(((ISNULL(WorkPhone))||((!ISNULL(WorkPhone))&&

(WorkPhoneXPC==1)))&&(((ISNULL(OtherPhone))||((!ISNULL(OtherPhone))&&(OtherPhoneXPC==1)))))
让我知道它是否有效


Ashutosh Arya

这个复合条件非常糟糕,以至于我想用脚本组件来代替:

脚本组件(这里是SCR_DetermineTarget)配置为同步转换,向数据流添加
TargetId
列。下面的条件拆分逻辑只是将
TargetId
与您选择的任何值进行比较。我选择使用1表示所有XPC字段为零,使用2表示至少有一个XPC字段为非零,但所有电话号码均为空

下面的代码(在VB中,因为您指定了VS 2005)适当地设置了
TargetId

Public重写子MyInput\u ProcessInputRow(ByVal行作为MyInputBuffer)
将targetId设置为整数
targetId=0
如果Row.PhoneXPC=0或Row.WorkPhoneXPC=0或Row.OtherPhoneXPC=0,则
targetId=1
如果Row.Phone\u为空或Row.WorkPhone\u为空或Row.OtherPhone\u为空,则
targetId=2
如果结束
Row.TargetId=TargetId
端接头

如果该逻辑不是您想要的,那么在VB.NET中修复它应该比在条件转换的内部更容易,仅仅基于可读性。

为什么要添加!在五月的地方???这也是你的吗?谢谢Edmund Schweppe:-)这个解决方案非常有用:-)不客气!如果你认为这是这个问题的最佳答案,你应该这样做。
{

(((ISNULL(Phone)=="TRUE")&&(ISNULL(WorkPhone)=="TRUE")&&(ISNULL(OtherPhone)=="TRUE"))&&

(((ISNULL(Phone)=="TRUE")||((!ISNULL(Phone)=="TRUE")&&(PhoneXPC==1)))&&

(((ISNULL(WorkPhone)=="TRUE")||((!ISNULL(WorkPhone)=="TRUE")&&(WorkPhoneXPC==1)))&&

(((ISNULL(OtherPhone)=="TRUE")||((ISNULL(OtherPhone)=="TRUE")&&(OtherPhoneXPC==1)))))


 }