1.列出至少有一个员工的所有部门。
-- 部门分组求出员工的个数
select count(empno) as '个数', deptno from emp group by deptno;
-- having对分组后的条件的过滤
select d.* from emp e,dept d where e.deptno=d.deptno
group by dname having count(e.empno)>=1
2.列出薪金比“SMITH”多的所有员工。
select sal from emp where ename='SMITH'
select * from emp where sal>(select sal from emp where ename='SMITH');
select * from emp;
3.列出所有员工的姓名及其直接上级的姓名。
select e1.ename as ename, e2.ename as manager from emp e1,emp e2
where e1.mgr=e2.empno;
select * from emp;
4.列出受雇日期早于其直接上级的所有员工。
-- 经理信息与员工信息在同一张表
select e2.* from emp e