ITPub博客

首页 > 数据库 > Oracle > oracle 实验

oracle 实验

原创 Oracle 作者:kyng8 时间:2010-06-24 18:44:29 0 删除 编辑

这几题郁闷了

查询那些在其所在的部门中有一个或多个来的更晚但工资更高的同事的员工名、受雇日期及工资。


显示员工名并以*为指示符代表工资数额(列标题为EMPLOYEE_AND_THEIR_SALARIES),一个指示符代表一百美元,并以工资数额降序排列

创建一个缩进报告显示经理层次,从名字为 JONES的员工开始。显示雇员的名字、经理ID和部门ID。象例子输出显示的那样给出列的别名,对名字列设置宽度为20个字符。
NAME MGR_ID DEPT_ID
JONES 100 90
_Whalen 101 10
_Higgins 101 110
__Gietz 205 110

怎么解啊

[@more@]

-------------华丽的分界限----------------------------

SQL> SELECT ENAME,HIREDATE,SAL FROM EMP E1

2 WHERE EXISTS(SELECT * FROM EMP E2

3 WHERE E1.DEPTNO=E2.DEPTNO AND E1.SAL

4 E1.HIREDATE

2

SQL> col EMPLOYEE_AND_THEIR_SALARIES FORMAT A40;

SQL> L

1 select empno,ename,rpad('*',trunc(sal/100),'*') as EMPLOYEE_AND_THEIR_SALAR

IES,sal

2 from emp

3* order by sal desc

SQL> /

3

1 SELECT LPAD(ename, LENGTH(ename)+(LEVEL*2) -2,'_') name,mgr manager_id,dept

no department_id

2 FROM emp

3 START WITH ename = 'JONES'

4* CONNECT BY PRIOR mgr = empno

4. 查询员工名、受雇日期、受雇当天是星期几(DAY)、员工的奖金(COMM)。如果该员工不能获得奖金,则以“No Commission”显示,并以DAY升序排列。

1 SELECT ENAME,HIREDATE,TO_CHAR(HIREDATE,'DAY') DAY,NVL(TO_CHAR(COMM),'NO COM

MISSION') COMM FROM EMP

2* ORDER BY DECODE(TO_CHAR(HIREDATE,'DAY'),'星期一',1,'星期二',2,'星期三',3,'

星期四',4,'星期五',5,'星期六',6,7)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24140674/viewspace-1034624/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 张永森
请登录后发表评论 登录
全部评论

注册时间:2010-06-23

  • 博文量
    4
  • 访问量
    2681