Oracle常用函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值函数

日期函数

SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual; SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"') FROM dual;

其他函数

5.高级查询(多表联合查询)

例子:

SELECT job 职务 , SUM(sal) 工资总和 FROM emp

WHERE job != 'PRESIDENT'

GROUP BY job

HAVING SUM(sal)>4500

ORDER BY SUM(sal);

分析函数

以下三个分析函数用于计算一个行在一组有序行中的排位,序号从1开始

ROW_NUMBER返回连续的排位,不论值是否相等

RANK具有相等值的行排位相同,序数随后跳跃

DENSE_RANK 具有相等值的行排位相同,序号是连续的

例子:

SELECT deptno, ename, sal, comm, RANK() OVER

(PARTITION BY deptno ORDER BY sal DESC, comm) RANK

FROM emp;

SELECT ename, job, deptno, sal, ROW_NUMBER() OVER

(ORDER BY sal DESC) AS SAL_RANK

FROM SCOTT.EMP;

SELECT d.dname, e.ename, e.sal, DENSE_RANK()

OVER (PARTITION BY e.deptno ORDER BY e.sal DESC)

AS DENRANK

FROM emp e, dept d WHERE e.deptno = d.deptno;

rollup()合计函数,求合计

cube ()合计函数比前一个更详细

例子(也可以叫交叉报表交叉报表)

create table test(sales varchar2(10),dest varchar2(10),revenue number)

insert into test values('smith','hangzhou',1000);

insert into test values('smith','wenzhou',2000);

insert into test values('allen','wenzhou',3000);

insert into test values('allen','wenzhou',4000);

SELECT sales, nvl(dest,'合计'),SUM(revenue)FROM test GROUP BY CUBE(sales, dest);

SELECT sales, nvl(dest,'合计'),SUM(revenue)FROM test GROUP BY ROLLUP(sales, dest);

比CUBE少2原因是没有对hangzhou、wenzou 的综合进行统计

nullif(exp1,exp2)如果相等返回null 不相等返回第一个

相关文档
最新文档