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

如何在Azure Workbook中使用KQL动态删除不符合Locale的空列?

解决方案

方法一:根据Locale直接删除目标列(推荐)

既然你明确知道当前Locale的值(无论是硬编码还是从Azure Workbook参数传入),无需动态检查列是否为空,直接通过project-away配合case语句删除对应Locale不需要的列即可,逻辑简单且高效:

// 定义Locale变量,可替换为实际参数值(比如工作簿中的参数)
let current_locale = "fr-CA";
// 你的原始数据处理逻辑...
| project 
    ItemName = iff(current_locale == "en-CA", strcat(ItemName_s, iff(Required_s=="False"," (R)", " (M)")), ""),
    ["Nom de l article"] = iff(current_locale == "fr-CA", strcat(ItemName_s, iff(Required_s=="False"," (R)", " (M)")), "")
// 根据Locale删除对应空列
| project-away (case(current_locale == "en-CA", "Nom de l article", "ItemName"))

方法二:动态检查并删除全空列(适用于Locale不确定的场景)

如果需要通用处理所有可能的空列(比如Locale有更多取值),可以通过聚合统计列的非空行数,再动态生成要删除的列名列表:

// 先执行原始查询生成目标列
let raw_data = (
    // 你的原始数据处理逻辑...
    | project 
        ItemName = iff("fr-CA" == "en-CA", strcat(ItemName_s, iff(Required_s=="False"," (R)", " (M)")), ""),
        ["Nom de l article"] = iff("fr-CA" == "fr-CA", strcat(ItemName_s, iff(Required_s=="False"," (R)", " (M)")), "")
);
// 统计每列非空行数,筛选出全空的列
let empty_cols = raw_data
| summarize 
    has_itemname = countif(ItemName != ""),
    has_french_name = countif(["Nom de l article"] != "")
| extend cols_to_remove = dynamic([
    iff(has_itemname == 0, "ItemName", ""),
    iff(has_french_name == 0, "Nom de l article", "")
])
| mv-expand cols_to_remove to typeof(string)
| where cols_to_remove != ""
| summarize make_set(cols_to_remove);
// 从原始数据中删除全空列
raw_data
| project-away (empty_cols)

更优写法:直接生成对应Locale的列(避免生成空列)

可以跳过生成两列再删除的步骤,直接根据Locale动态生成目标列,从根源上避免空列:

let current_locale = "fr-CA";
// 你的原始数据处理逻辑...
| extend column_value = strcat(ItemName_s, iff(Required_s=="False"," (R)", " (M)"))
| project 
    (case(
        current_locale == "en-CA", "ItemName",
        current_locale == "fr-CA", "Nom de l article",
        ""
    )): column_value

内容的提问来源于stack exchange,提问作者Ali Alvi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:14:54