如何解决oracle sql计算多个列
我想计算在sql中具有特定值的列数。例:A B C D E
1 2 1 2 2
我如何计算3列的值为2。
解决方法
您可以为此使用解码:
Select decode(a,2,1,0)
+ decode(b,0)
+ decode(c,0)
+ decode(d,0)
+ decode(e,0)
from my_tab
替代用例:
Select (case a when 2 then 1 else 0 end)
+ (case b when 2 then 1 else 0 end)
+ (case c when 2 then 1 else 0 end)
+ (case d when 2 then 1 else 0 end)
+ (case e when 2 then 1 else 0 end)
from my_tab
, 为了使Frank Schmitt更进一步,您可以将“要计算的值”塞入内联表中以避免重复:
Select
decode(a,countthis.countvalue,0)
from
my_tab,(select 2 as countvalue from dual) countthis
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。