KQL 查询仅连接具有列值的表

KQL query to only join tables with a column value

如果我的查询返回:

Id Column1 Column2
123 Value
123 Value
456 Value
456 Value

我有第二个查询 returns:

Id Column3
123 50
456 75

我如何通过 Id 加入两个查询,而不 Column3 值出现在存在 Id 的每一行 - 相反,对于存在它的每一行 AND 仅在 Column1 中有值。例如:

Id Column1 Column2 Column3
123 Value 50
123 Value
456 Value 75
456 Value

您可以使用具有您描述的逻辑的 case() 函数计算 Column3

例如:

let q1 = datatable(Id:long, Column1:string, Column2:string)
[
    123, 'Value', '',
    123, '', 'Value',
    456, 'Value', '',
    456, '', 'Value',
]
;
let q2 = datatable(Id:long, Column3:long)
[
    123, 50,
    456, 75,
]
;
q1
| join kind=inner q2 on Id
| project Id, Column1, Column2, Column3 = case(isempty(Column1), long(null), Column3)
Id Column1 Column2 Column3
123 Value
123 Value 50
456 Value
456 Value 75