DolphinDB中的iif函数可以实现上述的功能,具体示例如下:
iif(true, 1, 2)
iif(cond, trueResult, falseResult)
cond 是布尔标量、向量或矩阵。可为产生布尔标量、向量或矩阵的表达式。
trueResult 和 falseResult 可以是标量、与 cond 等长的向量或与 cond 维度相同的矩阵。
如果 cond[i] 为 true,它返回 trueResult(cond[i]);否则它返回 falseResult(cond[i])。 当 cond[i] 为NULL值时,返回的结果也是 NULL 值。
b = select id,
iif(flag>1,1,0)
from t
case 语句至少包含一组 when…then… 语句,当满足 when 条件,则返回 then 结果,否则返回 else 后的表达式结果。
a = select id, case when flag>1 then 1 else 0 end as flag from t
id = 0 1 flag = 0 1 t = table(id, flag) timer(10) a = select id, case when flag>1 then 1 else 0 end as flag from t id = 0 1 flag = 0 1 t = table(id, flag) timer(10) b = select id, iif(flag>1,1,0) from t
实施方案 :case when then 耗时:5.849 ms
实施方案 :iif 耗时:1.043 ms
所以,iff的性能更好