周六,早十点起床,毕竟劳动了一周了,偶尔偷个小懒!
步入正题!
----注---/*这只是我随便写的表名,大概意思往下看*/--------
select
case when b.val is null then a.val
when b.val <= 0 then a.val
else a.val / a.qty
end as RTL_VAL
from 表1 a
left join 表2 b
on a.id = b.id
我的需求就是,当b.val 为 null 或者 <= 0时,我要用 a.val ,否则就是进行一个除法运算
这里我用CK(clickhouse)进行计算的时候,他会提示除数不能为0
那就分开计算 进行union all
select
divide(a.val,b.CONVERTER) as RTL_VAL
from a
left join b on a.id = b.id
where b.val >0 and b.val is not null
union all
select
a.val as RTL_VAL
from a
left join b on a.id = b.id
where b.val <=0 and b.val is not null
---注:divide 是计算数字的商。结果类型始终是浮点类型。 它不是整数除法