SQL语句

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 年薪

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值