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

如何在KQL中通用获取所有字符串类型列的最大长度?

KQL实现通用字符串列最大长度汇总

要在KQL中实现无需显式指定列名、可直接在任意表上运行的字符串列最大长度查询,可通过动态生成查询语句的方式实现,核心思路是借助getschema获取表结构,再动态构建聚合逻辑,具体步骤如下:

实现方案

  1. 筛选字符串类型列:用getschema函数提取目标表的列元数据,过滤出string类型的列名(若需包含dynamic类型可扩展条件)。
  2. 生成聚合表达式:为每个字符串列构建max(strlen(列名)) as 列名的计算逻辑,特殊列名(含空格/特殊字符)用方括号包裹避免语法错误。
  3. 执行动态查询:将表达式拼接成完整KQL语句,通过evaluate query()执行动态查询。

完整示例代码

// 替换为你的目标表名
let TargetTable = "YourTableName";
// 获取表中所有字符串类型列
let StringColumns = getschema(TargetTable) 
    | where ColumnType == "string"  // 若需包含dynamic类型,改为 ColumnType in ("string", "dynamic")
    | project ColumnName;
// 生成每个列的最大长度计算表达式
let AggregationExprs = StringColumns 
    | summarize ExprList = make_list(strcat("max(strlen([", ColumnName, "])) as [", ColumnName, "]"));
// 拼接成完整的动态查询语句
let DynamicQuery = strcat(TargetTable, " | summarize ", strcat_array(AggregationExprs.ExprList, ", "));
// 执行动态查询
evaluate query(DynamicQuery)

注意事项

  • 仅需修改TargetTable变量值,即可适配任意表的查询需求。
  • 方括号[]用于兼容列名含空格、特殊字符的场景,避免语法报错。
  • 若需计算dynamic类型列的字符串形式长度,调整where子句的过滤条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:05:05