SSIS 派生列替换表达式
SSIS Derived column Replace expression
我正在使用替换函数将字符串(公式)Var(A) 替换为列(值)AM01,将 Var(B) 替换为 BM01,直到 Var(E),但让我们坚持使用 A 和B 现在。
AM01 = 4
BM01 = 5
第一个替换工作正常,这是因为 Var(A) 在每个公式中。
REPLACE(M01,(DT_WSTR,100)"Var(A)",(DT_WSTR,100)AM01)
结果:
Var(A) = 4
Var(A)/Var(B) = 4/Var(B)
当我在这个带有公式的列之后有第二个派生列时
REPLACE(M01,(DT_WSTR,100)"Var(B)",(DT_WSTR,100)BM01)
走不好取决于公式:
Var(A) = NULL
Var(A)/Var(B) = 4/5
我仔细阅读了这篇文章,似乎如果 REPLACE 函数没有找到匹配项,它会给出 NULL,我希望它在没有匹配项时不执行任何操作,保留原始值。
有什么建议吗?不幸的是,我无法在 SQL 中进行替换,在到达这一点之前,很多包都是 运行 并且写入数据库以进行此更新将花费大量时间,并且需要临时 table.
尝试使用三级 IIF 函数:
Something == Null ? (Return the original value) : (Return the formula(value))
以上明显是伪代码
我正在使用替换函数将字符串(公式)Var(A) 替换为列(值)AM01,将 Var(B) 替换为 BM01,直到 Var(E),但让我们坚持使用 A 和B 现在。 AM01 = 4 BM01 = 5
第一个替换工作正常,这是因为 Var(A) 在每个公式中。
REPLACE(M01,(DT_WSTR,100)"Var(A)",(DT_WSTR,100)AM01)
结果:
Var(A) = 4
Var(A)/Var(B) = 4/Var(B)
当我在这个带有公式的列之后有第二个派生列时
REPLACE(M01,(DT_WSTR,100)"Var(B)",(DT_WSTR,100)BM01)
走不好取决于公式:
Var(A) = NULL
Var(A)/Var(B) = 4/5
我仔细阅读了这篇文章,似乎如果 REPLACE 函数没有找到匹配项,它会给出 NULL,我希望它在没有匹配项时不执行任何操作,保留原始值。
有什么建议吗?不幸的是,我无法在 SQL 中进行替换,在到达这一点之前,很多包都是 运行 并且写入数据库以进行此更新将花费大量时间,并且需要临时 table.
尝试使用三级 IIF 函数:
Something == Null ? (Return the original value) : (Return the formula(value))
以上明显是伪代码