我在表中有一个列(比如A),其中有空值,我有另一个列(比如说B)依赖于这个列,它们都是相互关联的,现在我的问题是
如果A中的某行有NULL
而B是NOT NULL
,则A应该被B替换,如果B也是NULL
,那么它应该赋值{{ 1}}。
UNKNOWN
输出应该像
Table 1:
A B C D
NULL 1 2 3
NULL NULL 3 4
1 NULL 4 5
答案 0 :(得分:0)
编辑:问题在于SSIS的实施,但我将把它留在这里为未来的灵魂。
这个怎么样?
编辑:你想交换A和B吗?如果是这样,只需使用与此类似的 CASE
。
CASE [Table 1].A
WHEN [Table 1].A IS NULL AND [Table 2].B IS NOT NULL
THEN [Table 1].A
WHEN [Table 1].A IS NULL AND [Table 2].B IS NULL
THEN 'UNKNOWN'
ELSE [Table 1].A
END
答案 1 :(得分:0)
在派生的列控件中,根据您选择的列添加以下表达式(或添加新列)
A栏:
((LEN([A]) == 0 || ISNULL([A])) && (LEN([B]) != 0 || !ISNULL([B]))) ? [A] : [B]
B栏:
((LEN([B]) == 0 || ISNULL([B])) && (LEN([A]) != 0 || !ISNULL([A]))) ? [B] : [A]
然后你可以使用相同的表现来调整你的UNKNOW案例。
((LEN([Column 0]) == 0 || ISNULL([Column 0])) && (LEN([Column 1]) == 0 || ISNULL([Column 1]))) ? "HELLO" : "UNKNOW"
如果它适合你,请让我更新:)
最诚挚的问候, ANDOURA
答案 2 :(得分:0)
对于A列,请使用此表达式。
ISNULL(A) && ISNULL(B)? "UNKNOWN" : ISNULL(A) && !ISNULL(B)? "B" : "NULL"