1、显示所有的姓名、工种、工资和奖金,按工种降序排列,若工种相同则按工资升序排列。
select ename,job,sal,comm from emp order by job desc,sal
asc;
2、查询员工的姓名和入职日期,并按入职日期从先到后进行排列。
select ename,hiredate from emp order by hiredate asc;
3、查询所有员工工资和奖金的和。
select ename,(sal+nvl(comm,0)) salcomm from
emp;
4、查询各月倒数第2天入职的员工信息。
select * from emp where hiredate in (select
(last_day(hiredate)-1) from emp);
5、查询员工信息,要求以首字母大写的方式显示所有员工的姓名。
select upper(substr(ename,1,1)) ||
lower(substr(ename,2,length(ename)-1)) from
emp;
6、显示所有员工的姓名、入职的年份和月份,若入职日期所在的月份排序,若月份相
同则按入职的年份排序。
select
ename,to_char(hiredate,'yyyy')||'-'||to_char(hiredate,'mm') from
emp order by to_char(hiredate,'mm'),to_char(hiredate,'yyyy');
7、显示所有的姓名、工种、工资和奖金,按工种降序排列,若工种相同则按工资升序
排列。
select ename,job,sal,comm from emp order by job desc,sal
asc;
8、查询在2月份入职的所有员工信息。
select * from emp where to_char(hiredate,'mm') =
2;
9、查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示。
select
ename,floor((sysdate-hiredate)/365)||'年'||floor(mod((sysdate-hiredate),365)/30)||'月'||ceil(mod(mod((sysdate-hiredate),365),30))||'天'
from emp;
10、查询至少有一个员工的部门信息。
select * from dept where deptno in (select distinct deptno from
emp where mgr is not null);
11、查询所有员工的姓名及其直接上级的姓名。
select staname,ename supname from (select
ename staname,mgr from emp) t join emp on
t.mgr=emp.empno;
12、查询入职日期早于其直接上级领导的所有员工信息。
select * from emp where empno in (select
staempno from (select empno staempno,hiredate stahiredate,mgr from
emp) t join emp on t.mgr&#61;emp.empno and stahiredate <
hiredate)&#xff1b;
13、查询所有部门及其员工信息&#xff0c;包括那些没有员工的部门。
select * from dept left join emp on
emp.deptno&#61;dept.deptno order by dept.deptno&#xff1b;