一、查询部门30中的全部员工的所有信息。 html
select * from emp where deptno=30;htm
二、查询全部办事员(CLERK)的姓名,编号和部门编号。 blog
select ename,empno,deptno from emp where job='CLERK';排序
三、查询补助高于薪金的员工的所有信息。 get
select * from emp where nvl(comm,0) > sal;博客
四、查询补助高于薪金的60%的员工的所有信息。 it
select * from emp where nvl(comm,0) > (sal*0.6);io
五、查询部门10中全部经理(MANAGER)和部门20中全部办事员(CLERK)的详细资料。 ast
select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 And job='CLERK');class
六、查询部门10中全部经理(MANAGER),部门20中全部办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的全部员工的详细资料。
理解1:查询部门10中全部经理(MANAGER),部门20中全部办事员(CLERK),以及公司内哪些既不是经理又不是办事员但其薪金大于或等于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);
理解2:查询部门10中全部经理(MANAGER),部门20中全部办事员(CLERK),以及十、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 And deptno In (10,20));
七、查询收取补助的员工的不一样工做。
select ename,job,comm from emp where nvl(comm,0) > 0;
八、查询不收取佣金或收取的补助小于100的员工。
select * from emp where nvl(comm,0) <100;
九、查询各月倒数第3天受雇的全部员工。
Select * From emp Where (last_day(hiredate) - hiredate) = 2;
十、查询早于12年前受雇的员工。
Select * From emp Where to_char(Sysdate,'yyyy') - to_char(hiredate,'yyyy') >= 12;
十一、查询首字母大写的方式显示全部员工的姓名。
Select ename,Initcap(ename) From emp;
十二、查询正好为5个字符的员工的姓名。
Select ename From emp Where Length(ename)=5;
1三、查询不带有“R”的员工的姓名。
作法1:Select ename From emp Where ename Not Like '%R%';
作法2:Select ename From emp Where Instr(ename,'R')=0;
1四、查询全部员工姓名的前三个字符。
Select ename, Substr(ename,1,3) From emp;
1五、查询全部员工的姓名,用“a”替换全部“A”
Select ename,Replace(ename,'A','a') From emp;
1六、查询满10年服务年限的员工的姓名和受雇日期。
方法1:若是不考虑到闰年平年的话,10*365能够表明10年。
Select ename, hiredate From emp Where (Sysdate-hiredate)>=10*365;
方法2:若是考虑到闰年平年,10*365是不知足10年的要求。
若是服务年限满10年,那排除月日,sysdate和hiredate在年份上确定也是>=10
Select ename, hiredate From emp Where (to_char(Sysdate,'yyyy') - to_char(hiredate,'yyyy')) >= 10;
1七、查询员工的详细资料,按姓名排序。
Select * From emp Order By ename;
1八、查询员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面。
Select ename, hiredate From emp Order By hiredate Desc;
1九、查询全部员工的姓名、工做和薪金,按工做的降序排序,若工做相同则按薪金排序。
Select ename,job,sal From emp Order By job Desc,sal Desc;
20、查询全部员工的姓名,加入公司的年份和月份,按受雇日期所在月份排序,若月份相同则将最先年份的员工排在最前面。
Select ename,to_char(hiredate,'yyyy'),to_char(hiredate,'mm') From emp Order By to_char(hiredate,'mm'),to_char(hiredate,'yyyy');
2一、查询在一个月尾30天的状况全部员工的日薪金,忽略余数。
Select ename,Trunc(sal/30) From emp;
2二、查询在(任何年份的)2月受聘的全部员工。
Select * From emp Where to_char(hiredate,'mm')=2;
2三、查询每一个员工加入公司的天数。
Select ename,(Sysdate-hiredate) From emp;
2四、查询姓名字段的任何位置包含“A”的全部员工的姓名。
Select ename From emp Where ename Like '%A%';
2五、查询以年月日的方式显示全部员工的服务年限。(大概)
Select ename,sysdate,hiredate,Round(sysdate-hiredate) 天数,
Nvl(Trunc((sysdate-hiredate)/365),0)||'年'||
Nvl(Trunc((Mod((sysdate-hiredate),365))/30),0)||'月'||
Nvl(Round(Mod((Mod((sysdate-hiredate),365)),30)),0)||'日' 年月日 From emp;
做者:kerwin-chyl
文章连接:https:////www.cnblogs.com/kerwin-chyl
本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。