DECODE(command
,0,’None’
,2,’Insert’
,3,’Select’
,6,’Update’
,7,’Delete’
,8,’Drop
,’Other’) cmd
FROM V$SESSION WHERE type<>’BACKGROUND’;
NVL(x1,x2)
注意ORACLE中的NULL值,注意该函数作用
如果x1为空返回x2,否则返回x1。 SELECT NVL(ename,’无姓名’) FROM EMP;
分组函数
AVG([{DISTINCT|ALL}]<n>) 求返回行的指定列的平均值 SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal)
FROM SCOTT.EMP;
COUNT({*|[DISTINCT|ALL]}<x>) 统计返回的行数 SELECT COUNT (*), COUNT(DISTINCT mgr),COUNT(mgr)
FROM SCOTT.EMP
MAX([{DISTINCT|ALL}]<x>) 求返回行的指定列的最大值 SELECT MAX(sal),MAX(DISTINCT sal) FROM EMP;
MIN([{DISTINCT|ALL}]<x>) 求返回行的指定列的最小值 SELECT MIN(sal),MIN(DISTINCT sal) FROM EMP;
STDDEV([{DISTINCT|ALL}]<x>) 求返回行的指定列的标准方差 SELECT STDDEV(sal),STDDEV(DISTINCT sal) FROM EMP;
SUM() 求返回行的指定列的和 SELECT SUM(sal) FROM EMP;
VARIANCE() 求返回行的指定列的差异值
注意:
A、 分组函数不会处理空值,也不会返回空值;
B、 所有的分组函数既可以作用于指定列的所有值上,也可以只作用于指定列的差异列值上;
C、 当指定ALL选项时,分组函数作用于所有非空列值行上。当指定DISTINCT选项时,分组函数只作用于非空的且具有不同列值的行上(即,重复列值的行只计算一行);

