c/c++语言开发共享click house Code: e.displayText() = DB::Exception: Missing columns:

周六,早十点起床,毕竟劳动了一周了,偶尔偷个小懒!步入正题!—-注—/*这只是我随便写的表名,大概意思往下看*/——–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

周六,早十点起床,毕竟劳动了一周了,偶尔偷个小懒!

步入正题!

----注---/*这只是我随便写的表名,大概意思往下看*/-------- 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

click house Code: e.displayText() = DB::Exception: Missing columns:

那就分开计算 进行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 是计算数字的商。结果类型始终是浮点类型。 它不是整数除法。对于整数除法,请使用'intDiv'函数。 当除以零时,你得到'inf','- inf'或'null'---

进行运算的时候,你会发现还是错!

click house Code: e.displayText() = DB::Exception: Missing columns:

这下边是其他数据库 进行union all 看好我框出来的字段!(这些其实是我截取的,哈哈,不过不影响操作!)

click house Code: e.displayText() = DB::Exception: Missing columns:

现在呢,肯定纳闷啊,挖草两个SQL都能运行计算,为啥 union all 会报错?

记住!划重点! 考试会考的!

CK目前来说,应该是不支持 union all 下边的 as 别名!

把别名去掉之后,可以计算! 还有一点就是

你的字段一定要跟  上方的对应!

 一定要对应!

一定要对应好! 

不然也会报错!具体报的错 给忘了。  

从十点到下午六点多点,遇到了这么一个神坑!  真是太阳了。

希望对您有帮助。拜拜~  吃饭去了。

c/c++开发分享click house Code: e.displayText() = DB::Exception: Missing columns:地址:https://blog.csdn.net/Sy1114/article/details/110707779

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/596504.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐