1.选择部门30中的员工
select * from scott.emp where DEPTNO='30';
2.列出所有办事员(CLERK)的姓名,编号和部门编号
select ENAME,EMPNO,DEPTNO from scott.emp where JOB='CLERR';
3.找出佣金高于薪金的员工
select * from scott.emp where (COMM>SAL);
4.找出佣金高于薪金60%的员工
select * from scott.emp where (COMM>SAL*0.6);
5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料
select * from scott.emp where(JOB='MANAGER' and DEPTNO='10') or(JOB='CLERK'and DEPTNO='20');
6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料
select *from scott.emp where(JOB='MANAGER' and DEPTNO='10') or(JOB='CLERK'and DEPTNO='20')
or(JOB<>'MANAGER' and JOB<>'CLERK'and SAL>=2000);
7.找出收取佣金的员工的不同工作
select distinct JOB from scott.emp where COMM is not null;
8.找出不收取佣金或收取的佣金低于100的员工
select * from scott.emp where(COMM=0 OR COMM<100 );
9.找出各月倒数第三天受雇的所有员工
select *from scott.emp where hiredate =last_day(hiredate)-2;
10.找出早于12年前受雇的员工
select * from scott.emp where months_between(sysdate,hiredate)/12>=12;
11.以首字母大写的方式显示所有员工的姓名
select initcap(ENAME)from scott.emp;
12.显示正好为5个字符的员工的姓名
select ENAME from scott.emp where length(ENAME)=5;
13.显示不带有“R”的员工的姓名
select ENAME from scott.emp where ENAME not like'%R%';
14.显示所有员工姓名的前三个字符
select substr(ENAME,1,3) FROM scott.emp;
15.显示所有员工的姓名,用“a”替换所有“A”
select replace(ENAME,'A','a')from scott.emp;
16.显示满10年服务年限的员工的姓名和受雇日期
select ENAME,HIREDATE from scott.emp where months_between(sysdate,HIREDATE)/12>=10;
17.显示员工的详细资料,按姓名排序
select * from scott.emp order by ENAME;
18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面
select ENAME,HIREDATE from scott.emp order by HIREDATE asc;
19.显示所有员工的姓名、工作和薪金,按工作的降序排列,若工作相同则按薪金排序
select ENAME,JOB,SAL from scott.emp order by JOB desc,SAL;
20.显示所有员工姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面
select ENAME,to_char(HIREDATE,'YYYY/MM') from scott.emp order by to_char(HIREDATE,'MM'),to_char(HIREDATE,'yyyy') asc;
21.显示在一个月为30天的情况所有员工的日薪金,忽略余数
select round(SAL/30)from scott.emp;
22.找出在(任何年份的)2月受雇的所有员工
select * from scott.emp where to_char(HIREDATE,'MM')=2;
23.对于每个员工,显示其加入公司的天数
select ENAME ,round(sysdate-HIREDATE)emp_date from scott.emp;
24.显示姓名字段的任何位置包含“A”的所有员工
select ENAME from scott.emp where ENAME like '%A%';
25.以年月日的方式显示所有员工的服务年限
select ENAME,to_char(HIREDATE,'YYYY')||'年'||to_char(HIREDATE,'MM')||
'月'||to_char(HIREDATE,'DD')||'日'from scott.emp;