Oracle 的sum聚合函数的功能就是求和(这里暂时不讨论分析函数用法),一般用法不多讲,有个用法比较令人疑惑,曾经也踩过它的坑。示例如下:
declare
cursor t_cur is
select * from emp where empno = 7934 ;
v_count number;
begin
for tm_cur in t_cur loop
select sum(tm_cur.sal) into v_count from dept;
end loop;
dbms_output.put_line(v_count);
end;
这里的sum 求和的不是dept里面的字段,而是select 以外的其他值,刚开始看,还真一下子转不过来。再仔细想想,其实很简单,如下:
SQL> select 1 from dept ;
1
----------
1
1
1
1
SQL> select sum(1) from dept;
SUM(1)
----------
4
所以select sum(tm_cur.sal) into v_count from dept 的意思很简单,即结果为tm_cur.sal * (dept的行数);
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30741760/viewspace-2099462/,如需转载,请注明出处,否则将追究法律责任。