为何iff(null)的逻辑行为取决于操作数的数据类型?
Kusto中iff()函数处理null的行为解析
先看执行的代码及输出:
print iff(1.0 > real(null), 1.0, -1.0), iff(1.0 > real(null), true, false) -------------------------------------------------------------------------- -1 | <null>
行为解析
- 第一个
iff:条件1.0 > real(null)的结果为null,函数返回ifFalse分支的-1.0,这和where运算符将null视为false的逻辑一致,符合预期。 - 第二个
iff:同样条件为null,但返回的不是指定的false而是<null>,这是因为Kusto对布尔类型的可空性处理规则:当iff的条件为null,且返回分支是布尔值时,函数会直接返回null,而非ifFalse分支的布尔值。这是布尔类型与数值类型在iff函数中的处理差异。
目前官方文档未明确说明这一细节,但从实际执行结果可以总结出上述行为差异。
内容的提问来源于stack exchange,提问作者greatvovan
相关产品推荐
相关产品推荐

