首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kusto查询是否支持短路(McCarthy)评估

问Kusto查询是否支持短路(McCarthy)评估
EN

Stack Overflow用户
提问于 2020-06-26 02:09:32
回答 1查看 143关注 0票数 0

我尝试使用以下查询片段来允许变量正则表达式过滤器输入。

代码语言:javascript
复制
| where isempty("[[HttpStatusCode]]") or tostring(httpStatus_d) matches regex "[[HttpStatusCode]]"

该查询正在Grafana内的Azure日志分析中执行。Grafana仪表板上有一些变量,允许用户输入提供给查询的正则表达式。当过滤器为空时,我希望不会应用任何过滤器。我认为Kusto查询可能支持短路,当isempty(..)计算为true时,表达式的其余部分将被忽略,matches regex部分既不会执行也不会抛出错误。

当字符串为空时,我得到的错误消息是"Relop semantic error:'matches regex‘具有以下语义错误: SEM0031: matches regex: argument 2必须是一个常量非空字符串值。“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-26 17:42:34

Kusto没有短路功能。但您可以尝试下面的解决方法。

首先,您需要检查[[HttpStatusCode]]是否为空。如果它是空的,你可以给它分配一个虚拟值(注意,请确保这个虚拟值不能被where库中的matches regex操作符匹配)。因此,当输入空值时,它不会抛出任何错误。

示例查询:

代码语言:javascript
复制
table_name 
| extend tempvalue= iff(isempty("[[HttpStatusCode]]"),"a dummy value","[[HttpStatusCode]]")
| where isempty("[[HttpStatusCode]]") or tostring(httpStatus_d) matches regex tempvalue
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62581712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档