简体   繁体   English

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

[英]KQL query to only join tables with a column value

If my query is returning:如果我的查询返回:

Id ID Column1专栏1 Column2专栏2
123 123 Value价值
123 123 Value价值
456 456 Value价值
456 456 Value价值

and I have a second query that returns:我有第二个查询返回:

Id ID Column3专栏3
123 123 50 50
456 456 75 75

How can I join the two querys by Id without the Column3 value appearing for every row where an Id is present - rather, for every row where it is present AND has a value only in Column1.我如何通过 Id 加入两个查询,而不为存在 Id 的每一行显示 Column3 值 - 相反,对于它存在的每一行并且仅在 Column1 中具有值。 For example:例如:

Id ID Column1专栏1 Column2专栏2 Column3专栏3
123 123 Value价值 50 50
123 123 Value价值
456 456 Value价值 75 75
456 456 Value价值

You can calculate Column3 using the case() function with the logic you've described.您可以使用case() Column3和您描述的逻辑来计算 Column3 。

For example:例如:

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 ID Column1专栏1 Column2专栏2 Column3专栏3
123 123 Value价值
123 123 Value价值 50 50
456 456 Value价值
456 456 Value价值 75 75

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM