You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在KQL中将静态字符串列转换为动态数组以实现跨表值匹配?

KQL字符串列转动态数组及跨表匹配实现方案

核心实现步骤

步骤1:将表A的col1列转为可用动态数组

你之前使用make_list未达预期通常是缺少标量转换步骤,可通过以下代码实现:

// 聚合表A整列col1为动态数组,用toscalar转为标量方便跨表调用
let arrCol1 = toscalar(
    TableA
    // 若数据量超过100万,可在make_list第二个参数指定最大元素数避免截断,示例:make_list(col1, 2000000)
    | summarize make_list(col1)
);

如果你的表A每行col1是分隔符拼接的单个字符串,需先拆分每行值为数组:

TableA
// 示例按逗号拆分,可替换为实际分隔符
| extend col1Arr = split(col1, ",")

步骤2:实现数组元素与表B col2的逐元素匹配

根据需求,提供两种常用场景的实现:

场景1:仅筛选表B中col2存在于表A col1中的行

直接用in运算符匹配即可:

TableB
| where col2 in (arrCol1)

场景2:需按表A col1的顺序逐个匹配全量表B,保留匹配顺序

先给数组元素加上顺序索引,再和表B做关联匹配:

// 给数组元素添加顺序序号,索引从1开始计数
let arrWithOrder = 
    range i from 0 to array_length(arrCol1) - 1 step 1
    | project match_order = i + 1, match_value = arrCol1[i];
// 按顺序逐个匹配表B全量col2
arrWithOrder
| lookup kind=leftouter (TableB) on $left.match_value == $right.col2

内容的提问来源于stack exchange,提问作者Ayush guha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:36:02