iif
Syntax
iif(cond, trueResult, falseResult)
Arguments
cond is a Boolean scalar/vector/matrix. It can be an expression returning Boolean values.
trueResult and falseResult are scalars, or vectors of the same length as cond, or matrices of the same dimensions as cond.
Details
Element-wise conditional operation. cond is of Boolean type. If cond[i]
                is true, it returns trueResult(cond[i]); otherwise it returns
                    falseResult(cond[i]). If cond[i] is NULL, it returns
                NULL.
Note: 
                
        This function first parses the arguments and then returns trueResult or falseResult based on the result of cond.
Examples
iif(true true true false false false, 1..6, 6..1);
// output
[1,2,3,3,2,1]
iif(1..6==3, 1, 2);
// output
[2,2,1,2,2,2]
x=9 6 8;
iif(x<=8, 10*x, 20*x-80);
// output
[100,60,80]
            Use function iif in a SQL statement:
t=table(1..5 as id, 11..15 as x);
t1=table(take(12,5) as a, take(14,5) as b);
t;
            | id | x | 
|---|---|
| 1 | 11 | 
| 2 | 12 | 
| 3 | 13 | 
| 4 | 14 | 
| 5 | 15 | 
t1;
            | a | b | 
|---|---|
| 12 | 14 | 
| 12 | 14 | 
| 12 | 14 | 
| 12 | 14 | 
| 12 | 14 | 
update t set x=iif(x<t1.a, t1.a, iif(x>t1.b,t1.b, x));
t;
            | id | x | 
|---|---|
| 1 | 12 | 
| 2 | 12 | 
| 3 | 13 | 
| 4 | 14 | 
| 5 | 14 | 
a = NULL 1 -3 5
iif(a > 0, a, 0)
// output
[0, 1, 0, 5]
iif(nullCompare(>,a,0), a, 0)
// output
[ , 1, 0, 5]
            m1=1..6$3:2
m2=6..1$3:2
iif(m1>m2, m1, m2);
            | col1 | col2 | 
|---|---|
| 6 | 4 | 
| 5 | 5 | 
| 4 | 6 | 
