【问题标题】:How to query array column with array parameter in Azure Data Explorer (kusto)如何在 Azure 数据资源管理器 (kusto) 中使用数组参数查询数组列
【发布时间】:2020-04-24 08:57:59
【问题描述】:

我有一个带有动态列的表,其中存储了 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 行,但它失败并显示消息:源表达式是“动态”类型,无法与数字参数进行比较。 你能帮我写出正确的查询吗?

【问题讨论】:

    标签: azure-data-explorer kql


    【解决方案1】:

    您可以尝试使用set_intersect()https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/setintersectfunction

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多