如何在Azure数据资源管理器中用数组参数查询数组列(kusto)

问题描述 投票:0回答:1

我有一个带有动态列的表,在那里我存储了ID列表,并且我有一个参数,可以传递ID列表。所以,我想获取表中列中任何输入值的行。就像这样。

declare query_parameters (        
    i_ids: dynamic = dynamic([15,33,37])
);
let T = datatable(id: int, ids:dynamic)
[
    1, dynamic([10, 15, 18]),
    2, dynamic([22,25,29]),
    3, dynamic([31, 33, 37]),
];
T
| where ids has_any(i_ids);

我需要获取1和3行,但它失败了,消息是: 源表达式的类型是'动态',不能与数字参数进行比较.请你帮助我写正确的查询?

kusto azure-data-explorer kusto-query-language
1个回答
2
投票

你可以尝试使用 set_intersect(): https:/docs.microsoft.comen-usazuredata-explorerkustoquerysetintersectfunction。

declare query_parameters (        
    i_ids: dynamic = dynamic([15,33,37])
);
let T = datatable(id: int, ids:dynamic)
[
    1, dynamic([10, 15, 18]),
    2, dynamic([22,25,29]),
    3, dynamic([31, 33, 37]),
];
T
| where array_length(set_intersect(ids, i_ids)) > 0
© www.soinside.com 2019 - 2024. All rights reserved.