当前位置: 移动技术网 > IT编程>数据库>Oracle > Oracle中的SUM用法讲解

Oracle中的SUM用法讲解

2019年07月18日  | 移动技术网IT编程  | 我要评论

和你在一起gl,匈奴王的侍妾,渗透测试工具

oracle中的sum条件查询

1、按照区域编码分组查询区域编码、iptv_nbr不为空的数量、acc_nbr不为空的数量、所有用户数量

select
area_code,
sum (
case
when iptv_nbr is null or iptv_nbr = '' then
0
else
1
end
),
sum (
case
when acc_nbr is null or acc_nbr = '' then
0
else
1
end
),
count (*)
from
gat_sqms.gat_sqms_band_iptv_view
group by
area_code;

2、使用sum条件查询

查询iptv_nbr不为空的数量

sum (
case
when iptv_nbr is null or iptv_nbr = '' then
0
else
1
end
)

sum里边使用case when 语句

当iptv_nbr is null 为0,else 为1

oracle中sum字符串方法

create or replace function sumstring(i_tablename   in varchar2,
                   i_groupcolname in varchar2,
                   i_resultcolname in varchar2,
                   i_groupcolvalue in varchar2,
                   i_separator   in varchar2)
 return varchar2 is
 type t_cur is ref cursor;
 c_cur  t_cur;
 v_sql  varchar2(2000);
 v_result varchar2(2000);
 v_tmp  varchar2(200);
 v_cnt  number := 0;
begin
 v_result := ' ';
 v_sql  := 'select  ' || i_resultcolname || '  from  ' || i_tablename ||
       '  where  ' || i_groupcolname || '  =  ' || i_groupcolvalue;
 open c_cur for v_sql;
 loop
  fetch c_cur
   into v_tmp;
  exit when c_cur%notfound;
  if v_cnt = 0 then
   v_result := v_tmp;
  else
   v_result := v_result || i_separator || v_tmp;
  end if;
  v_cnt := v_cnt + 1;
 end loop;
 close c_cur;
 return v_result;
end sumstring;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对移动技术网的支持。如果你想了解更多相关内容请查看下面相关链接

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网