一、查詢部門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
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。