首页 > 解决方案 > 如何在 where 子句中使用包含“All”的下拉参数来工作?

问题描述

我正在使用 Application Insight Workbook 在 IIS 日志上设计图表。我想添加一个用户可以在计算机上过滤的参数。这一切都很好并且有效。此下拉列表允许多项选择,如下所示:

在此处输入图像描述

我想为“全部”添加一个复选框,所以我在这里做。 在此处输入图像描述

我在查询中使用这样的自定义参数

W3CIISLog | where Computer in ({Computer})

如何更改我的查询以同时支持多项选择和下拉菜单中的“全部”?这完全有可能实现吗?

标签: azure-log-analyticsazure-monitor-workbooks

解决方案


我们有一些特殊的 github 文档,其中包含有关如何对 all 进行特殊处理的示例。(看起来此信息尚未发布到公共 azure 文档

从那里复制:

一种方法是[]用作“全部”值,然后像这样编写查询:

let selection = dynamic([{Selection}]); 
SomeQuery  
| where array_length(selection) == 0 or SomeField in (selection) 

这将处理空选择或“所有”选择相同(由 array_length 检查处理)并且将在选择其他任何内容时在 SomeField 中查找选定值

其他常见情况在需要参数时使用'*'作为特殊标记值,然后用

| where "*" in ({Selection}) or SomeField in ({Selection}) 

(您也可以使用has_any代替in(或in~不区分大小写in),具体取决于您查询的方式和您的数据是什么等。


推荐阅读