如何在 where 子句中使用包含 "All" 的下拉参数?

How to get dropdown parameter with included "All" in where clause to work?

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

我想为 "All" 添加一个复选框,所以我在这里做了。

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

W3CIISLog | where Computer in ({Computer})

如何更改我的查询以支持多项选择和下拉列表中的 "All"?这完全有可能实现吗?

我们有一些特殊的 github 文档,其中包含有关 how to special case all 的示例。 (看起来这个信息还没有进入 public azure docs

从那里复制:

one way is to use [] as the "all" value, and then write your query like this:

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

this will treat an empty selection OR the "all" selection the same (handled by the array_length check) AND will look for selected values in SomeField when anything else is selected

Other common cases use '*' as the special marker value when a parameter is required, and then test with

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

(您也可以使用 has_any 代替 in(或 in~ insensitive in) 取决于你查询的方式和你的 数据是等