Oracle复习(三)
SQL高级查询:
设置默认的日期格式
ALTER SESSION SET NLS_DATE_FORMAT=‘date_format’;
date_format参数既可以采用 month-dd-yyyy格式,也可以采用yyyy-month-dd格式, 还可以采用yyyy-dd-month格式
可以把字符 数据转变成日期数据,也可以把日期数据转变 成字符数据
TO_CHAR()函数
TO_CHAR(sysdate, 'yyyy month dd, HH24:MI:SS')
TO_DATE()函数
TO_DATE('2008-09-30', 'yyyy-mm-dd')
层次查询:
select [Level]列名 FROM 表名 [WHERE]
[START WITH 列=值]
[CONNECT BY 条件]
eg: 查emp表中
select empno,ename,mgr from emp
start with empno = 7839
connect by prior empno = mgr
以树状形式显示:
COLUMN empno FORMAT A30
select lpad(' ',5*level-1)||empno EMPNO, lpad(' ',5*level-1)||ename ENAME FROM emp
START WITH empno = 7839
CONNECT BY PRIOR empno = mgr
情景查询:
在执行select操作过程中,经常需要对不同的 数据显示不同的结果。也就是说,在不同的情 景下,需要显示不同的结果。
在Oracle 10g系统中,可以使用 decode()函数和case表达式完成情景查询
eg:
decode(列,条件,结果,
条件,结果,
条件,结果,
条件,结果,
,结果 )
SELECT ename,sal,
decode(deptno, '10', '会计部',
'20', '研发部',
'30', '销售部',
'其他部门')
FROM emp;