array_iff()

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

动态数组上元素对应的 iif 函数。

array_iff()array_iif() 函数是等效的

语法

array_iff(condition_array, when_true, when_false)

详细了解语法约定

参数

客户 类型​​ 必需 描述
condition_array dynamic ✔️ 布尔值或数值的数组。
when_true 动态或标量 ✔️ 值或基元值的数组。 这将是 condition_array 为 true 时的结果。
when_false 动态或标量 ✔️ 值或基元值的数组。 这将是 condition_array 为 false 时的结果。

注意

  • 返回值的长度将与输入 condition_array 相同。
  • 如果数值条件值不等于 0,则视为 true
  • 在返回值的相应索引中,非数值和非布尔条件值将为 null。
  • 如果 when_true 或 when_false 短于 condition_array,则缺失值将视为 null。

返回

根据条件数组的相应值,返回从 when_true 或 when_false 数组值中获取的值组成的动态数组。

示例

print condition=dynamic([true,false,true]), if_true=dynamic([1,2,3]), if_false=dynamic([4,5,6]) 
| extend res= array_iff(condition, if_true, if_false)

输出

condition if_true if_false res
[true, false, true] [1, 2, 3] [4, 5, 6] [1, 5, 3]

数值条件值

print condition=dynamic([1,0,50]), if_true="yes", if_false="no" 
| extend res= array_iff(condition, if_true, if_false)

输出

condition if_true if_false res
[1, 0, 50] [yes, no, yes]

非数字和非布尔条件值

print condition=dynamic(["some string value", datetime("01-01-2022"), null]), if_true=1, if_false=0
| extend res= array_iff(condition, if_true, if_false)

输出

condition if_true if_false res
[true, false, true] 1 0 [null, null, null]

数组长度不匹配

print condition=dynamic([true,true,true]), if_true=dynamic([1,2]), if_false=dynamic([3,4]) 
| extend res= array_iff(condition, if_true, if_false)

输出

condition if_true if_false res
[true, true, true] [1, 2] [3, 4] [1, 2, null]