iff()

适用于:✅Azure 数据资源管理器Azure MonitorMicrosoft Sentinel

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

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

语法

iff(if, then, else)

详细了解语法约定

参数

客户 类型​​ 必需 说明
if string ✔️ 计算结果为布尔值的表达式。
then 标量 (scalar) ✔️ if 条件计算结果为 true 时返回其值的表达式。
else 标量 (scalar) ✔️ if 条件计算结果为 false 时返回其值的表达式。

返回

此函数当 if 条件计算结果为 true 时返回 then 值,否则返回 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

输出

下表仅显示前五行。

状态 EventId EventType
大西洋南部 61032 Waterspout 非下雨事件
佛罗里达州 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