sql简单查询(持续更新疑难杂症)

发布时间 2023-03-24 10:19:42作者: Argitacos

select * from emp;          --emp全表

select * from dept;          --dept全表

--查询10号部门中工资大于20号部门最高工资的员工信息(子查询,聚合函数)
select * from emp where deptno=10 and sal>(select max(sal) from emp where deptno=20);

select * from emp where deptno=10 and sal>all(select sal from emp where deptno=20);

 

--查询最低工资低于2000的部门及其员工信息。(别名,联合查询join on,分组,having条件

--最低工资低于2000的部门和其中工资低于2000的员工信息
select e.*,d.* from emp e join dept d on e.deptno=d.deptno
where exists (select e2.deptno from emp e2 where e.empno=e2.empno group by e2.deptno having min(sal)<2000);
--最低工资低于2000的部门和其中所有的员工信息
select e.*,d.* from emp e join dept d on e.deptno=d.deptno
where exists (select e.deptno from emp group by e.deptno having min(sal)<2000);

 

--查询员工工龄大于或等于10年的员工信息。(to_char类型转换,sysdate当前日期)
select hiredate,(sysdate-hiredate)/365,to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy')
from emp where (sysdate-hiredate)/365>=10;

select hiredate,(sysdate-hiredate)/365 from emp where (sysdate-hiredate)/365>=10;