oracle 练习题

scott用户下 
1.显示emp表中员工的名字和工资
 select ename,sal from emp;

2.显示emp表中员工的编号,名字,提成
 select empno,ename,comm from emp; 

3.显示部门编号和部门名称 
 select deptno,dname from dept;

4.显示员工名字和入职日期 
 select ename,hiredate from emp;

5.显示员工编号  名字 经理编号 
 select empno,ename,mgr from emp;

6.显示员工编号 名字 部门编号
 select empno,ename,deptno from emp;

7.显示工资等级  等级最低工资  等级最高工资
 select grade,losal,hisal from salgrade;
 
8.查询名字是BLAKE的人的编号,名字,工资
 select empno,ename,sal from emp where ename='BLAKE';
 
9.查询编号是7782的员工的编号,名字,工资,提成
 select empno,ename,sal,comm from emp where empno=7782;

10.查询入职日期是1981-2-20的员工的名字,入职日期,部门编号
 select ename,hiredate,deptno from emp where hiredate=to_date(19810220,'YYYY-MM-DD');

11.查询职位是销售(SALESMAN)的人的名字,职位,入职日期 
 select ename,job,hiredate from emp where job='SALESMAN';

12.查询部门是10的人的编号,名字,部门编号
 select empno,ename,deptno from emp where deptno=10;

13.查询工资大于1500,并且小于2500的人的编号,名字,工资
 select empno,ename,sal from emp where sal>1500 and sal<2500; 

14.查询工资小于2000的人的名字,工资,提成
 select ename,sal,comm from emp where sal<2000;

15.查询提成是0或是空的人的编号,名字,提成,部门编号
  select empno,ename,comm,deptno from emp where comm is null or comm=0;
  
16.查询工资大于1000或者部门是30的员工的编号,姓名,工资 
 select empno,ename,sal from emp where sal>1000 or deptno=30;

17.查询部门10的部门名称,位置等 
 select dname,loc from dept where deptno=10;

18.查询职位(JOB)为'PRESIDENT'的员工的工资
 select sal from emp where job='PRESIDENT';
 
19.查询有提成的员工信息 
 select * from emp where comm is not null;
 
20.查询名字长度为4 的员工的员工编号,姓名
 select empno,ename from emp where length(ename)=4;
 
21.显示10 号部门的所有经理('MANAGER')和20 号部门的所有职员('CLERK')的详细信息  
 select * from emp
 where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK');

22.显示各个部门经理('MANAGER')的工资
 select deptno,sal from emp where job='MANAGER';

23.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息
 select * from emp where nvl(comm,0)>sal;

24.检索以S结尾的员工姓名及月收入( 月收入是工资和提成之和 ) 
 select ename,sal+nvl(comm,0) from emp where ename like '%S';

25.查询员工姓名的第三个字母是A的员工姓名 
 select ename from emp where ename like '__A%';  

26.查询工资不在1000到2000之间的员工的姓名和工资
 select ename,sal from emp where sal not between 1000 and 2000;
 
27. 查询公司中没有管理者的员工姓名及job 
 select ename,job from emp where mgr is null;
    
28.求ename列的长度,显示员工编号,名字,长度
 select empno,ename,length(ename) 长度 from emp;      --length()
 
29.将ename转成小写,显示员工编号,名字,小写名字
 select empno,ename,lower(ename) from emp;     --lower()

30.将ename中的A,替换成ABC,显示编号,替换前的名字,替换后的名字
 select empno,ename,replace(ename,'A','ABC') from emp;   --replace( , , )

31.取ename的第二个字符,显示编号,名字,第二个字符
 select empno,ename,substr(ename,2,1) 第二个字符 from emp;  --substr( , , )

32.取ename的第二个字符到末尾的所有字符,显示编号,名字,截取后的字符
 select empno,ename,substr(ename,2) from emp;          --substr( , , )

33.取ename的第三个到第五个字符,显示编号,名字,截取后的字符
 select empno,ename,substr(ename,3,5) from emp;    --substr( , , )

34.找出ename中A第一次出现的位置,显示编号,名字,A的位置 
 select empno,ename,instr(ename,'A') from emp;     --instr( , , )

35.从ename中第一个A的位置开始截取,取2个字符,显示名字,截取后的字符
 select ename,substr(ename,instr(ename,'A'),2)  from emp;     --instr( , , ) substr( , , ) 
                                                                   --其中如果没有A则从第一个位置开始截取
36.将'abc,bdc,def'变成'abc bdc def',显示变之前的字符串,变之后的字符串
  select 'abc,bdc,def',replace('abc,bdc,def',',',' ') from  dual;      --replace( , , )
  select 'abc,bdc,def',translate('abc,bdc,def',',',' ') from  dual;      --translate( , , )

37.将'ABCDEFADE'变成'mBCDEFmDE',显示变之前的字符串,变之后的字符串
  select 'ABCDEFADE',translate('ABCDEFADE','A','m') from dual;           --translate( , , )
  select 'ABCDEFADE',replace('ABCDEFADE','A','m') from dual;     --replace( , , )

38.将'      abcdef       '变成'abcdef',显示变之前的字符串,变之后的字符串
 select '      abcdef       ',trim('      abcdef       ') from dual;      --trim( )

39.将'     mnop'变成'mnop',显示变之前的字符串,变之后的字符串
 select '     mnop',ltrim('     mnop') from dual;      --ltrim( )
  
40.将'nqwd      '变成'nqwd',显示变之前的字符串,变之后的字符串  --rtrim( )
 select 'nqwd      ',rtrim('nqwd      ') from dual;

41.将'hi    jk     mno'变成'hijkmno',显示变之前的字符串,变之后的字符串
 select 'hi    jk     mno',translate('hi    jk     mno','a  ','b') from dual;    --translate( , , )

42.求D和d的 ascii码.
 select 'D',ascii('D') from dual       --ascii()
 union
 select 'd',ascii('d') from dual;
 
 select * from emp;

43.将员工名字从M开始截取,显示员工姓名和截取之后名字
  select ename,substr(ename,instr(ename,'M')) from emp;               --substr( , )  instr( , )

44.将ename中的M替换成AAA,显示替换前后的名字
 select ename,replace(ename,'M','AAA') from emp;    --replace( , )

45.将506.9变成‘五零六点九’
 select '506.9',translate('506.9','.1234567890','点一二三四五六七八九零') from dual;       --translate( , , )
 
46. 将 'a#c12%45ABC!c*ef@89'中的除了字母和数字以外的字符都去掉
 select 'a#c12%45ABC!c*ef@89',translate( 'a#c12%45ABC!c*ef@89','ac1245ABCcef89#%!*@','ac1245ABCcef89') from dual;   --translate

47.将工资保2位小数,显示为美元格式,显示员工编号,姓名,工资
 select empno,ename,to_char(trunc(sal,2),'$999,999.99') from emp;

48.将员工工资显示千分位形式,显示员工编号,姓名,工资
 select empno,ename,to_char(sal,'999,999') from emp;

49.将员工工资增加500之后,求比原 工资增加了百分之几,四舍五入保留两位小数,显示员工编号, 名字,工资,百分比(比如:20%)
 select empno,ename,sal,round(500/sal*100,2)||'%' 百分比 from emp;
     
50.查询入职日期在1981-5-1到1981-12-31至间的所有员工信息
 select * from emp where hiredate between to_date(19810501,'YYYY-MM-DD') and to_date(19811231,'YYYY-MM-DD');
 
51.求1981你年下半年入职的员工
 select * from emp where hiredate between to_date(19810731,'YYYY-MM-DD') and to_date(19811231,'YYYY-MM-DD'); 
 
52.查询当前月有多少天
 select to_char(sysdate,'DD') from dual;
 
53.如果工资<1000,显示成'1级',1001至2000显示成'2级',2001至3000显示成'3级',其他显示成'4级'
 select sal,case when sal<1000 then '1级' 
                   when sal<2000 then '2级'
                   when sal<3000 then '3级'
                   else '4级'
             end case 
 from emp;                          

54.如果有提成,显示成'有提成',没提成,显示'没提成'分别用case和decode
 select comm, case when nvl(comm,0)>0 then '有提成'
                     else '没有提成'
               end case
 from emp;
 select comm,decode(nvl(comm,0),0,'没有提成','有提成')  from emp;

 
55.如果job是PRESIDENT显示成'老板',job是MANAGER,显示成'经理',其他显示成员工,分别用
  case when 和 decode 实现
  select job,case job when 'PRESIDENT' then '老板'
                        when 'MANAGER' then '经理'
                        else '员工'
              end case
  from emp;
  
  select job,decode(job,'PRESIDENT','老板','MANAGER','经理','员工') from emp;
  
56.1981年及以前入职的,显示为'老员工',1982年及以后入职的,显示为'新员工'
 select hiredate,case when hiredate<to_date(19810101,'YYYY-MM-DD') then '老员工'
                        else '新员工' 
                  end case
 from emp;
                        
57.随便写一个年份(比如:1981),判断这个年份是不是闰年,是闰年,显示为'闰年',否则显示为'平年'
 select to_char(sysdate,'YYYY'),case to_date(to_char(sysdate,'YYYY')||'12'||'31','YYYY-MM-DD')-trunc(sysdate,'YYYY')+1 when 365 then '平年'
                                                                                                                             else '闰年'
                                  end case
 from dual

58.emp表中hiredate,求星期,如果是星期一,显示为'周一',是星期二,显示为'周二',依次类推,星期日显示为'周日'
 select hiredate,decode(to_char(hiredate,'day'),'星期一','周一','星期二','周二','星期三','周三','星期四','周四','星期五','周五','星期六','周六','星期日','周日')
 from emp;
  
scott

59.列出至少有一个雇员的所有部门
 select deptno,count(*)
 from emp
 group by deptno 
 having count(*)>=1;

60.列出薪金比‘SMITH’多的所有雇员
 select * from emp where sal>(select sal from emp where ename='SMITH');

61.列出所有雇员的姓名及其直接上级的姓名
 select a.ename,b.ename
 from emp a inner join emp b on a.mgr=b.empno;

62.列出入职日期早于其直接上级的所有雇员
  select a. *
  from emp a inner join emp b on a.mgr=b.empno
  where a.hiredate<b.hiredate

63.列出所有‘CLERK’(办事员)的姓名及其部门名称
 select a.ename,b.dname
 from emp a inner join dept b on a.deptno=b.deptno
 where a.job='CLERK';
  
64.列出薪金高于公司平均水平的所有雇员
 select * 
 from emp 
 where sal>(select avg(sal) from emp);
  
65.列出与‘SCOTT’从事相同工作的所有雇员
  select * from emp where job=(select job from emp where ename='SCOTT');
  
66.列出某些雇员的姓名和佣金,条件是他们的薪金等于部门30中任何一个雇员的薪金
 select ename,sal from emp where sal in (select sal from emp where deptno=30 );

67.列出某些雇员的姓名和佣金,条件是他们的薪金高于部门30中所有雇员的薪金
  select ename,sal from emp where sal>all(select sal from emp where deptno=30 );

68.列出每个部门的编号以及该部门中雇员数量、平均工资和平均服务期限
 select b.deptno,count(a.empno),avg(a.sal),avg(months_between(sysdate,hiredate)/12) year
 from emp a inner join dept b on a.deptno=b.deptno
 group by b.deptno
 
69.列出所有雇员的雇员名称,部门名称和薪金
 select a.ename,b.dname, a.sal
 from emp a inner join dept b on a.deptno=b.deptno;

70.列出从事同一种工作但属于不同部门的雇员数量
 select job,deptno,count(*)
 from emp
 group by job,deptno
 order by job; 
 
71.列出各种类别工作的最低工资
  select min(sal) from emp group by job
  
72.列出各个部门的MANGER (经理)的最低薪金
  select min(sal) 
  from emp
  where job='MANAGER'
  group by deptno;

73.列出按年薪排序的所有雇员的年薪
 select sal*12 ysal
 from emp 
 order by ysal desc

74.列出薪金水平处于第四位的雇员
 select empno,ename
 from (select rownum num,empno,ename
         from emp
         order by sal desc)
 where num=4
   
75.不用组函数求出薪水的最大值
 select sal
 from (select sal  from  emp order by sal desc)
 where rownum<2

76.查询员工的基本信息,附加其上级的姓名 
 select a.*,b.ename from emp a inner join emp b on a.mgr=b.empno;

77.显示工资比‘ALLEN’高的所有员工的姓名和工资
 select ename,sal from emp where sal>(select sal from emp where ename='ALLEN');

78.显示与‘SCOTT’从事相同工作的员工的详细信息
 select * from emp where job=(select job from emp where ename like 'SCOTT');

79.显示与30部门‘MARTIN’员工工资相同的员工的姓名和工资
 select ename,sal
 from emp 
 where sal=( select sal from emp where deptno=30 and ename='MARTIN');

80.查询所有工资高于平均工资(平均工资包括所有员工)的销售人员(‘SALESMAN’)
 select *
 from emp
 where sal>(select avg(sal) from emp ) and job='SALESMAN';

81.显示所有职员的姓名及其所在部门的名称和工资
 select a.ename,b.dname,a.sal
 from emp a inner join dept b on a.deptno=b.deptno;

82.查询在研发部(‘RESEARCH’)工作员工的编号,姓名,工作部门,工作所在地
 select a.empno,a.ename,b.dname,b.loc
 from emp a inner join dept b on a.deptno=b.deptno
 where b.dname='RESEARCH';

83.查询各个部门的名称和员工人数
 select b.dname,count(*)
 from emp a inner join dept b on a.deptno=b.deptno
 group by b.dname; 

84.查询各个职位员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位
 select job,count(*)
 from emp
 where sal>(select avg(sal) from emp )
 group by job;

85.查询工资相同的员工的工资和姓名
 select sal,ename
 from emp
 where sal in (select sal
                 from emp
                 group by sal
                 having count(*)>=2)

86.查询工资最高的3名员工信息
 select *
 from (select * from emp order by sal desc)
 where rownum<4

87.求入职日期相同的(年月日相同)的员工
 select a.empno
 from emp a inner join emp b on a.hiredate=b.hiredate
 group by a.empno
 having count(a.empno)>=2
 
 select * from emp where hiredate=( select hiredate
 from emp 
 group by hiredate
 having count(empno)>=2)
 

88.查询每个员工的信息及工资级别
 select a.empno,a.ename,b.grade
 from emp a inner join salgrade b on a.sal between losal and hisal;

89.查询工资最高的第6-10名员工
  select empno,ename,sal
  from (select rownum nu,empno,ename,sal from emp order by sal desc)
  where nu between 6 and 10;
 
90查询各部门工资最高的员工信息
 select *
 from emp
 where sal in (select max(sal) from emp group by deptno)
 
91.查询出有3个以上下属的员工信息
 select * from emp where empno in (select mgr from emp group by mgr having count(*)>=3)
 
92.查询所有大于本部门平均工资的员工信息
 select *
 from emp a inner join (select deptno,avg(sal) ag from emp group by deptno) b on a.deptno=b.deptno
 where a.sal>b.ag;

93.查询平均工资最高的部门信息
  select * from dept where deptno=(
  select deptno
  from (select deptno,avg(sal) av from emp group by deptno order by avg(sal) desc)
  where rownum<2);

94.查询部门平均工资大于所有人平均工资的部门信息
 select * from dept where deptno in (
 select deptno from emp group by deptno having avg(sal)>(select avg(sal) from emp)); 

95.查询没有员工的部门信息
 select * from dept where deptno not in (select deptno from emp)

96.哪些部门的人比90部门人数多
 with dep as (select department_id deptno,count(*) cou from employees group by department_id)
 select deptno
 from dep where cou>(select cou from dep where deptno=90);

97.Den(first_name)、Ernst(LAST_NAME)的领导分别是谁
 select a.first_name,b.first_name 
 from employees a inner join employees b on a.manager_id=b.employee_id
 where a.first_name='Den' or a.last_name='Ernst';
 
98.Den(first_name)、Ernst(LAST_NAME)的下属分别有谁
 select b.first_name,a.first_name
 from employees a inner join employees b on a.manager_id=b.employee_id
 where b.first_name='Den' or b.last_name='Ernst';
 
99.列出在同一部门共事,入职日期晚但工资高于其他同事的员工:名字  工资 入职日期
 select a.first_name,a.salary,a.hire_date
 from employees a inner join employees b on a.department_id=b.department_id
 where a.hire_date>b.hire_date and a.salary>b.salary;

100.Finance 部门有哪些职位
 select a.job_id
 from employees a inner join departments b on a.department_id=b.department_id
 where b.department_name='Finance';

101.查询入职日期比10部门任意一个员工晚的员工姓名,入职日期,不包括10部门员工
 select *
 from emp
 where hiredate>all(select hiredate from emp where deptno=10) ;
  
102.查询比自己职位平均工资高的员工姓名,职位,部门名称,职位平均工资
 select a.ename,a.job,c.dname,b.av
 from emp a inner join (select job,avg(sal) av from emp group by job) b on a.job=b.job
            inner join dept c on a.deptno=c.deptno
 where a.sal>b.av;
   
103.查询不是经理的员工姓名
 select ename
 from emp
 where empno not  in (select distinct nvl(mgr,0) from emp ); 

104.查询入职日期最早的前五名员工姓名,入职日期
 select ename,hiredate
 from (select ename,hiredate from emp order by hiredate asc)
 where rownum<6;
  
105.查询工作在CHICAGO并且入职日期最早的前两名员工姓名,入职日期
 select name,hrdate
 from (select a.ename name,a.hiredate hrdate
        from emp a inner join dept b on a.deptno=b.deptno
        where b.loc='CHICAGO'
        order by a.hiredate asc)
 where rownum<3
 
106.查询工资高于编号为7782的员工工资,并且和7369号员工从事相同工作的员工的编号
 select empno
 from emp
 where sal>(select sal from emp where empno=7782)
        and job=(select job from emp where empno=7369);

107.查询工资最高的员工姓名和工资
 select ename,sal
 from (select ename,sal from emp order by sal desc)
 where rownum=1;

108.查询部门最低工资高于30号部门最低工资的部门编号,名称及部门最低工资
  with temp as (select deptno,min(sal) min from emp group by deptno)
  select a.deptno,a.dname,b.min
  from dept a inner join temp b on a.deptno=b.deptno
  where b.min<(select min from temp where deptno=30);

109.查询员工工资为其部门最低工资的员工的编号和姓名及工资
 select empno,ename,sal
 from emp 
 where (deptno,sal) in (select distinct deptno,min(sal) from emp group by deptno);
 
110.显示经理是KING的员工姓名,工资
 select ename,sal
 from emp
 where mgr=(select empno from emp where ename='KING');
 
111.显示比员工SMITH参加工作时间晚的员工姓名,工资,参加工作时间
 select ename,sal,hiredate
 from emp
 where hiredate>(select hiredate from emp where ename='SMITH');

112.使用子查询的方式查询哪些职员在NEW YORK 工作
 select * from emp where deptno=(select deptno from dept where LOC='NEW YORK');
 
113.写一个查询显示和员工SMITH工作在同一个部门的员工姓名,雇佣日期,查询结果排除SMITH
 select ename,hiredate
 from emp
 where deptno=(select deptno from emp where ename='SMITH') and ename!='SMITH';

114.查询显示其工资比全体职员平均工资高的员工编号姓名
 select empno,ename
 from emp
 where sal>(select avg(sal) from emp ) 

115.显示所有工作在RESEARCH部门的员工姓名工资
 select ename,sal
 from emp 
 where deptno=(select deptno from dept where dname='RESEARCH');

116.要求部门的平均工资高于20部门平均工资的平均工资
  with temp as (select deptno,avg(sal) av from emp group by deptno)
  select avg(av)
  from temp where av>(select av from temp where deptno=20);
 
117.查询大于自己部门平均工资的员姓名,工资,所在部门平均工资
 with temp as (select deptno,avg(sal) av from emp group by deptno)
 select a.ename,a.sal,b.av
 from emp a inner join temp b on a.deptno=b.deptno
 where a.sal>b.av
 
118.列出至少有一个雇员的所有部门
  select deptno
  from emp
  group by deptno
  having count(*)>=1;
 
119.列出薪金比SMITH多的所有雇员
 select * from emp where sal>(select sal from emp where ename='SMITH');

120.列出入职日期早于其直接上级的所有雇员
 select *
 from emp a inner join emp b on a.mgr=b.empno
 where a.hiredate<b.hiredate;
 
121.显示部门名称和人数
 with temp as (select deptno,count(*) cou from emp group by deptno)
 select a.dname,nvl(b.cou,0)
 from dept a left join temp b on a.deptno=b.deptno;
 
122.显示每个部门的最高工资的员工
 select *
 from emp
 where (deptno,sal) in (select deptno,max(sal) from emp group by deptno)

123.显示出和员工号7369部门相同的员工姓名,工资
 select ename,sal
 from emp
 where deptno=(select deptno from emp where empno=7369);

124.显示出和员工姓名中包含W的员工相同部门的员工姓名
 select ename
 from emp
 where deptno in (select deptno from emp where ename like '%W%')
 
125.显示出工资大于平均工资的员工姓名,工资
 select ename,sal
 from emp
 where sal>(select avg(sal) from emp);
 
126.显示比工资最高的员工参加工作时间晚的员工姓名,参加工作时间
 select ename,hiredate
 from emp
 where hiredate>(select hiredate from emp where sal=(select max(sal) from emp));
 
127.显示出平均工资最高的部门的平均工资及部门名称
 with temp as (select deptno,avg(sal) av from emp group by deptno order by avg(sal) desc),
       tmp as (select deptno,av from temp where rownum=1)
 select  a.dname,b.av
 from dept a inner join tmp b on a.deptno=b.deptno
 
128、找出奖金高于工资的员工 
 select * from emp where nvl(comm,0)>sal;

129、找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工
 select *
 from emp
 where deptno=10 and job not in ('MANAGER','CLERK') and sal>2000;

130、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面 
 select ename,months_between(sysdate,hiredate)/12 year
 from emp 
 order by year desc;
 
131.显示2008年的8月8日为星期几
 select to_char(to_date(20080808,'YYYY-MM-DD'),'day') from dual;

132.将入职日期显示为如下格式:  23-01-2018 
 select empno,to_char(hiredate,'DD-MM-YYYY') from emp

133.取出每位员工在分别在哪个季度入职
 select empno,ename,to_char(hiredate,'q') from emp

134.显示每位员工在本月哪周入职
 select ename,to_char(hiredate,'w') from emp;

135.显示日期 '2018-01-12 12:13:14'
 select to_date(20180112,'YYYY-MM-DD')+12/24+13/24/60+14/24/60/60 from dual;
 
136、要求查询出雇员的编号,姓名,工作,但是显示的格式:编号是:7369的雇员,姓名是:SMITH,工作是:CLERK(emp表中所有数据,只显示一列)
 select '员工编号是:'||empno||',雇员姓名是:'||ename||',工作是:'||job from emp
 
137、要求查询基本工资不大于1500,同时不可以领取奖金的雇员信息
 select * from emp where sal<=1500 and comm is null;

138、查询出名称中第2位字母出现在职位中,任意位置的员工信息
 select a.*
 from emp a inner join (select empno,instr(job,substr(ename,2,1)) nu from emp) b on a.empno=b.empno
 where b.nu!=0;

139、时间是’2018-10-26’中,显示当天所在周的周一是几号,这天是一年的多少周,是当前月中的第几周
 select to_date(20181026,'YYYY-MM-DD'),trunc(to_date(20181026,'YYYY-MM-DD'),'ww'),to_char(to_date(20181026,'YYYY-MM-DD'),'ww'),to_char(to_date(20181026,'YYYY-MM-DD'),'w') from dual;

140、写出将时间‘2018-10-26’显示成‘2018-10-29 12-13-14’ 需要加几天
 select to_date(20181029,'YYYY-MM-DD')+12/24+13/24/60+14/24/60/60-to_date(20181026,'YYYY-MM-DD') FROM DUAL;

141、显示员工表中,员工编号是奇数的员工信息 或 工资是奇数但是无奖金的员工信息
 select * from emp
 where mod(empno,2)=1 or (mod(sal,2)=1 and comm is null);

142、要求查询出每个雇员的姓名,工资,部门名称,工资在公司的等级(salgrade),及其领导的姓名及工资等级
 with temp as (select a.empno empno,a.ename ename,a.mgr mgr,a.sal sal,c.dname dname,b.grade grade
               from emp a inner join salgrade b on a.sal between losal and hisal
                           inner join dept c on a.deptno=c.deptno)
 select a.ename,a.sal,a.dname,a.grade,b.ename,b.grade
 from temp a inner join temp b on a.mgr=b.empno;

143、按工资降序求第5到10位员工的姓名及工资
 select name,sal
 from (select rownum num,ename name,sal from ( select ename,sal from emp order by sal desc))
 where num between 5 and 10;

 
————————————————
版权声明:本文为CSDN博主「BoJie0912」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BoJie_1/article/details/88074759

posted @ 2020-05-05 13:24  晨起的太阳  阅读(3954)  评论(0编辑  收藏  举报