1、列出至少有一个员工的部门
select count(*),deptno from emp group by deptno having count(*)>1
2、列出薪水比‘SMITH’多的所有员工
select sal from emp where ename='SMITH'
select *from emp where sal>(select sal from emp where ename='SMITH')
3、列出所有员工的姓名及其直接上级的姓名
select e.ename,boss.ename from emp e,emp boss where e.mgr=boss.empno
4、列出受雇日期晚于其直接上级的所有员工
select e.ename,e.hiredate,boss.hiredate from emp e,emp boss where (e.mgr=boss.empno) and (e.hiredate>boss.hiredate)
5、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
select d.dname,e.ename,e.job from emp e right join dept d on e.deptno=d.deptno
6、列出最低薪金大于1500的各种工作
select min(sal),job from emp group by job
select min(sal),job from emp group by job having min(sal)>1500
7、列出在部门‘SALES’(销售部)工作的员工的姓名,假定不知
道销售部的部门编号
select ename,'sales' from emp where
deptno=(select deptno from dept where dname='sales')
8、列出薪金高于公司平均薪金所有员工
select avg(sal) from emp
select *from emp where sal>(select avg(sal) from emp)
9、列出在每个部门工作的员工数量、平均工资和平均服务年限
select count(*) 总人数,avg(sal) 平均工资,
avg(datediff(year,hiredate,getdate())) 平均服务年限,deptno 部门号
from emp group by deptno
10、列出所有从事同一种工作但属于不同的部门
select distinct *from emp e,emp em where (e.job=em.job) and (e.deptno<>em.deptno)
11、列出所有部门的详细信息和部门的人数
select d2.dname,d2.loc,isnull(d.c,0) from dept d2
left join (select count(*) c,deptno de from
emp group by deptno) d on d2.deptno=d.de
12、列出MANAGER的最低薪金
select min(sal) from emp where job='MANAGER'
select *from emp where sal=(select min(sal) from emp where job='MANAGER')
13、列出所有员工的年工资,按年薪从低到高排序
select (sal+isnull(comm,0))*12 年薪 from emp order by 年薪
SQL语句
最新推荐文章于 2023-06-06 22:30:44 发布