拿到一个统计分类,最后算合计的表格,查了GROUPING函数确实很好用。
GROUPING函数可以接受一列,返回0或者1。
如果列值为空,那么GROUPING()返回1;
如果列值非空,那么返回0。
GROUPING只能在使用ROLLUP或CUBE的查询中使用。当需要在返回空值的地方显示某个值时,GROUPING()就非常有用。
SQL>
selectdecode(grouping(d.dname),1,'合计:',d.dname) dname,
decode(grouping(e.job)+grouping(d.dname),1,'小计:',e.job) job,sum(sal) sum_sal from emp e,dept d
where e.deptno=d.deptno groupbyrollup(d.dname,e.job);