iff()
当 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 |