文档库

最新最全的文档下载
当前位置:文档库 > ORACLE查询

ORACLE查询

1 找出佣金高于薪金60%的雇员。

2 找出部门10中所有经理和部门20中所有办事员的详细资料。

select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK');

3 找出部门10中所有经理,部门20中所有办事员以及既不是经理又不是办事员但其薪金大于或等2000的所有雇员的详细资料。

select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK') or(job not in(…MANAGER?,?CLERK?) and sal>=2000);

4 找出收取佣金的雇员的不同工作。

5 找出不收取佣金或收取的佣金低于300的雇员。

6 找出各月倒数第三天受雇的所有雇员。

Select * from emp where hiredate=last_day(hiredate)-3;

7 找出晚于26年之前受雇的雇员。

8 将所有雇员的姓名变为首字母大写,其它的小写。

Select concat(upper(sbustr(ename,1,1)),lower(substr(ename,2))) from emp;

9 显示正好为5个字符的雇员的姓名。

Select * from emp where length(ename)=5;

10显示不带有“R”的雇员姓名。

Select * from emp where instr(ename,?R?)=0;

11显示所有雇员的姓名的前三个字符。

Select substr(ename,1,3) from emp;

12显所有雇员的姓名,用a替换所有“A”。

Select replace(ename,?A?,?a?) from emp;

13显示所有雇员的姓名以及满30年服务年限的日期。

14显示雇员的详细资料,按姓名排序。

Select * from emp order by enam;

15显示雇员姓名,根据其服务年限,将最老的雇员排在最前面。

Select enam from emp order by hierdate;

16显示所有雇员的姓名、工作和薪金,按工作内的工作的降序顺序排序,而工作按薪金排序。

17显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,并将最早年份的项目排在最前面。

Select ename,hiredate from emp order by substr(to_char(hiredate,?yyyymmdd?),5,2);

18显示在一个月为30天的情况下所有雇员的日薪金,取整.(截去小数部分,不四舍五入) Select ename,trunc(sal/30) from emp;

19找出在(任何年份的)2月受聘的所有雇员。

Select empno,ename,job,mgr,hiredate,sal,commit,deptno from (select empno,enam,job,mgr,hiredate,sal,commit,depto,substr(to_char(hiredate,?yyyymmdd?),5,2)ch from emp) e where e.ch=?02?;

20对于每个雇员,显示其加入公司的天数。

Select enam,sysdate-hiredate from emp;

21显示姓名字段的任何位置,包含“A”的所有雇员的姓名。

Select * from emp where ename like …%A%?;

22以年、月和日显示所有雇员的服务年限。

Select to_char(hiredate,?yyyy:mm:dd?) from emp;

23列出至少有一个雇员的所有部门。

Select * from dept where deptno in(select deptno from emp);

24列出薪金比“SMITH”多的所有雇员。

Select * from emp where sal>(select sal from emp where ename=?SMITH?);

25列出所有雇员的姓名及其上级的姓名。

Select a.ename.a.empno,http://www.wendangku.net/doc/1fc2c2e271fe910ef02df80e.html,b.empno from emp a,emp b where a.mgr=b.empno;

26列出入职日期早于其直接上级的所有雇员。

Select a.ename.a.empno,http://www.wendangku.net/doc/1fc2c2e271fe910ef02df80e.html,b.empno from emp a,emp b where a.mgr=b.empno and a.hiredate

27列出部门和这些部门的雇员,同时列出那些没有雇员的部门。

Select emp.ename,dept.deptno,dept.dname from emp,dept where dept.deptno=emp.deptno;

28列出所有“CLERK”(办事员)的姓名及其部门名称。

select emp.ename,dept.dname from emp.dept where emp.job=?CLEK?and dept.deptno=emp.deptno;

29列出各种类型的最低薪金,并使最低薪金大于1500。

Update emp set sal=1500 where sal in (select min(sal) from emp group by deptno);

30列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。

Select ename from emp where job=?SALES?;

31列出薪金高于公司平均水平的所有雇员。

Select * from emp where sal>((select sum sal from emp)/(select count(*) from emp))

32列出与“SCOTT”从事相同工作的所有雇员。

Select * from emp where job=(select job from emp where ename=?SCOTT?);

33列出薪金等于在部门30工作的所有雇员的姓名和薪金。

Select ename,sal from emp where sal=(select sum(sal) from emp where deptno=30)

34列出薪金高于在部门30工作的所有雇员的姓名和薪金。

Select ename,sal from emp where sal>(select sum(sal) from emp where deptno=30)

35列出在每个部门工作的雇员的经理以及其他信息。

36列出所有雇员的雇员名称、部门名称和薪金。

Select emp.ename,emp.sal.dept.dname from emp,dept where emp.deptno=dept.deptno;

37列出从事同一种工作但属于不同部门的雇员的不同组合。

Select a.ename,b.ename from emp a,emp b where a.job=b.job and a.deptno!=b.deptno;

38列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员。

39列出各种类型工作的最低工资。

Select min(sal) from emp group by job;

40列出各个部门的MANAGER(经理)的最低薪金。

Select min(sal) from emp where job=?MANAGER? group by deptno

41列出按年薪排序的所有雇员的年薪。

Select * from emp order by (sal*12+nvl(comm,0)) desc;

42列出薪金水平处于第四位的雇员。

Select * from emp

43查找EMP表中前5条记录

select t2.* from(select rownum r,t1.* from emp t1 where rownum<6) t2 where t2.r>=1;

44查找EMP表中10条以后的记录

select t2.* from(select rownum r,t1.* from emp t1 ) t2 where t2.r>10;

45查找EMP表中薪水第5高的员工

select * from (select * from (select rownum r,emp.* from emp where rownum<=5)t where t.r>=1)t1 where t1.r=5;

46查找EMP表部门30中薪水第3的员工

Select * from (select rownum r,t1.* from (select * from emp where deptno=30) t1 where rownum<=3) t2 where t2>=1;

47查找EMP表中每部门薪水第3的员工

48统计各部门的薪水总和.

Select sum(sal) from emp group by deptno;

49每个部门员工和经理的详细信息:编号,姓名,薪水,入职日期,部门编号

Select * from emp where job=?MANAGER?;

50找出各月最后受雇的所有雇员

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

52列出薪金比“SMITH”多的所有员工

Select * from emp where sal>(select sal from emp where ename=?SMITH?);

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

Select a.ename,b.ename from emp a.emp b where a.mgr=b.empno;

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

Select a.ename,b.ename from emp a.emp b where a.mgr=b.empno and(a.hiredate

55列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

56列出所有“CLERK”(办事员)的姓名及其部门名称

57列出最低薪金大于1500的各种工作。

Select job from emp where sal<1500;

58列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

59列出薪金高于公司平均薪金的所有员工。

60列出与“SCOTT”从事相同工作的所有员工。

61列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。62列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金63列出在每个部门工作的员工数量、平均工资和平均服务期限。

64列出所有员工的姓名、部门名称和工资。

65列出从事同一种工作但属于不同部门的员工的一种组合。

66列出所有部门的详细信息和部门人数。

67列出各种工作的最低工资。

68列出各个部门的MANAGER(经理)的最低薪金。

69列出所有员工的年工资,按年薪从低到高排序。