When a table is created, an empty cell will be assigned null. Also, when creating a nested joined table with joinkind.fullouter, null will also be written into the table for rows that are present in the right table but not in the left.
The first null responds as documented where [column] = null will return True or False, and Value.Type will return: Type Null.
However, the null returned as a result of the Table.Join(......,JoinKind.FullOuter) does not respond this way.
What is going on?
How can I test for null when the null is created by the Table.Join method?
Note that if I expand the table, the null will now test correctly.
To demonstrate the problem, run the below code.
let
Source1 = Table.FromRecords({
[A="a"],
[A="b"],
[A=null],
[A="c"]
}),
type1 = Table.TransformColumnTypes(Source1,{"A", type text}),
Source2 = Table.FromRecords({
[A="c"],
[A="d"]
}),
type2 = Table.TransformColumnTypes(Source2,{"A", type text}),
combo = Table.NestedJoin(type1,"A",type2,"A","joined",JoinKind.FullOuter),
#"Added Custom" = Table.AddColumn(combo, "test [a]=null", each [A]=null),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "test Value.Type([A])", each Value.Type([A]))
in
#"Added Custom1"
In the screenshot, row 3 was created directly; row 5 is the result of a Nested Join operation