我如何评估可能未提供的价值?

问题描述

我正在尝试使用Azure资源图(ARG)查询作为后端来制作Azure监视器工作簿。出现了一个下拉列表,用于选择日期时间值,该值作为参数传递给ARG以过滤结果。它在查询中表示为{dateCreated:start}值。只要用户在下拉列表中选择了某些内容,此方法就可以正常工作,问题是,如果在datetime字段中未选择任何内容,则条件本质上变为coalesce(todatetime(),todatetime('2016-11-09T02:53:17.4582226Z')),这显然使验证逻辑失败,因为todatetime()希望将某些内容传递给它。 KQL中有什么可以克服这个问题的吗?

 Resources
| where type == 'microsoft.compute/virtualmachines'
| where tags['datecreated'] >  coalesce(todatetime({dateCreated:start}),todatetime('2016-11-09T02:53:17.4582226Z') )

解决方法

iff()isempty()将为您解决问题:

Resources
| where type == 'microsoft.compute/virtualmachines'
| where tags['datecreated'] > iff(isempty({dateCreated:start}),todatetime('2016-11-09T02:53:17.4582226Z'),todatetime({dateCreated:start}))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...