Oracle表的常用查询实验

Oracle表的常用查询实验

1.找出emp表中的ename第三个字母是A的员工信息

select * from emp where ename like’__A%’;

2.找出emp表中员工姓名中含有A和的员工姓名

select ename from emp where ename like’%A%’and ename like’%N%’;

3.找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,佣金从大到小排序

select sal+nvl(comm,0)as sc,ename,sal,nvl(comm,0)from emp  orderby sal asc,sc desc;

4.找出部门号是20的职位类型

select  distinct jobfrom emp  where deptno=20;

5.显示工资不在1500和2000之间的员工信息:姓名、工资,并按工资从大到小排序

select ename,sal from emp where sal not between1500and2000order by sal desc;

6.把一个职工号所对应的奖学金 ,一个一个读取出来,然后重复的不要

select zgh,to_char(WMSYS.WM_CONCAT(distinct(a.jlqk)))

  from t_jxj agroupbya.zgh;

7.列出至少有一个员工的所有部门

select * from emp where sal>(select sal from emp where ename=’YUAN’);

8.列出所有员工的姓名及其直接上级的姓名

select e1.ename yuang_name,e2.ename boss_name from scott.emp e1,scott.emp e2 where e1.mgr=e2.empno;

9.列出受雇日期早于其直接上级的所有员工

select t1.ename from scott.emp t1,scott.emp t2 where t1.hiredate<t2.hiredate and t1.mgr=t2.empno;

10.列出部门名称和这些部门的员工信息,同事列出那些没有员工的部门

select d.deptno,d.dname,d.loc,e.* from scott.dept  d left join scott.emp e  on d.deptno=e.deptno;

11.列出最低薪资大于1500的各种工作

select  job from scott.emp e group bye.jobhavingmin(sal)>1500;

12.列出在部门‘SALES’‘工作的员工的姓名,假定不知道部门编号

select e.ename from scott.emp e wheree.deptno in

(select deptno from scott.dept  d where  d.dname=’SALES’);

13.列出薪资高于公司平均水平的所有员工

select * from scott.emp e where(e.sal+nvl(e.comm,0))>(select avg(e1.sal+nvl(e1.comm,0))from scott.emp e1);

14.列出与’SCOTT”从事相同工作的所有员工

select ename from scott.emp e1 where e1.job=(select e.jobfrom scott.emp ewhere ename=’SCOTT’);

标签