我试图确定表1中存在哪些不在表2中的记录(因此本质上使用not in(
let outliers =
Table 2
| project UniqueEventGuid;
Table 1
|where UniqueEventGuid !in (outliers)
|project UniqueEventGuid
但是,即使我知道表1中有孤儿,仍能取回0条记录。!in
不是正确的语法吗?
提前感谢!
!操作员内
"在表格表达式中,结果集的第一列为选定">
在下面的示例中,我有意对列进行排序,这样查询就会由于数据类型不匹配而导致错误。
在您的情况下,数据类型可能匹配,因此查询是有效的,但结果是错误的。
let t1 = datatable(i:int, x:string)[1,"A", 2,"B", 3,"C" ,4,"D" ,5,"E"];
let t2 = datatable(y:string, i:int)["d",4 ,"e",5 ,"f",6 ,"g",7];
t1
| where i !in (t2)
Relop语义错误:SEM0025:提供给"!in"运算符与左侧表达式类型"int"不匹配,考虑使用显式强制转换
Fiddle
如果确实是这样的话,您可以对列进行重新排序,或者只投影相关的列
请注意使用双括号。
let t1 = datatable(i:int, x:string)[1,"A", 2,"B", 3,"C" ,4,"D" ,5,"E"];
let t2 = datatable(y:string, i:int)["d",4 ,"e",5 ,"f",6 ,"g",7];
t1
| where i !in ((t2 | project i))
i | x |
---|---|
1 | A |
2 | B |
3 | C |