iff()

使用 “版本 ”下拉列表切换服务。 了解有关导航的详细信息。
适用于:✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

当 then 条件的计算结果为 if时返回 true 值,否则返回 else 值。

iff() 和 iif() 函数是等效的。

Syntax

iff( if , then , else )

详细了解语法约定。

参数

姓名 类型 必选 Description
if string ✔️ 计算结果为布尔值的表达式。
then 标量 ✔️ 当 if 条件的计算结果为 true时返回其值的表达式。
else 标量 ✔️ 当 if 条件的计算结果为 false时返回其值的表达式。

退货

当 then 条件计算结果为 if时,此函数返回 true 值,否则返回 else 值。

例子

使用 iff() 对数据进行分类

以下查询使用 iff() 函数根据其事件类型将风暴事件分类为“雨事件”或“未下雨事件”,然后投影状态、事件 ID、事件类型和新的降雨类别。

StormEvents
| extend Rain = iff((EventType in ("Heavy Rain", "Flash Flood", "Flood")), "Rain event", "Not rain event")
| project State, EventId, EventType, Rain

输出

下表仅显示前五行。

State EventId 事件类型 雨
大西洋南部 61032 水龙卷 不下雨事件
佛罗里达州 60904 暴雨 雨事件
佛罗里达州 60913 龙卷风 不下雨事件
佐治亚州 64588 雷雨大风 不下雨事件
密西西比州 68796 雷雨大风 不下雨事件
... ... ... ...

将 iff() 与其他函数组合

以下查询计算作物和财产造成的总损失,根据总损坏、直接伤害和直接死亡对风暴事件的严重性进行分类,然后按严重性汇总事件总数和事件数。

StormEvents
| extend TotalDamage = DamageCrops + DamageProperty
| extend Severity = iff(TotalDamage > 1000000 or InjuriesDirect > 10 or DeathsDirect > 0, "High", iff(TotalDamage < 50000 and InjuriesDirect == 0 and DeathsDirect == 0, "Low", "Moderate"))
| summarize TotalEvents = count(), SeverityEvents = count() by Severity

输出

Severity TotalEvents
低 54805
高 977
中等 3284