1、多条件选择
multiIf(cond_1, then_1, cond_2, then_2, …, else)
select multiIf(true,0,1)
当第一条件不成立看第二条件判断
第一个参数条件参数,第二参数条件成立时走
2、clickhouse 在计算时候长出现NaN和Infinity异常处理
isNaN()和isInfinite()处理
3、empty(字段)
当字段有值时候 empty(字段)=0(字段有值empty函数判读是false所以值为0)
当字段无值时候 empty(字段)=1
4、case when 和multiIf转换
case 字段 when 值1 then ‘A’ when 值2 then ‘B’ else 字段 end
case when 字段=值1 then ‘A’ when 字段=值2 then ‘B’ else 字段 end
case when 字段 like ‘%A%’ then ‘A’ when 字段=值2 then ‘B’ else 字段 end
case 字段 when和case when 字段 case when 字段 可以处理模糊等相关查询case 字段 when不可以
case when 字段 like ‘%a%’ then ‘A’ when 字段=值2 then ‘B’ else 字段 end 转multiIf实现
multiIf(like(字段, ‘%a%’), ‘A’, equals(字段, ‘值2’), ‘B’, 字段)