Oracle复习(三)SQL高级查询

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39424143/article/details/89331987

Oracle复习(三)

SQL高级查询:

  • 默认日期格式:日期数据的格式是dd-mon-yy
设置默认的日期格式 
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; 

猜你喜欢

转载自blog.csdn.net/qq_39424143/article/details/89331987