Oracle中的SUM用法讲解

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;

总结

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

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐