select * from emp, dept;
select * from emp, dept where emp.deptno = dept.deptno;
select * from emp e, dept d;
select e.ename, e.deptno, d.dname
from emp e, dept d
where e.deptno = d.deptno;
select e1.ename, e1.job, e2.ename
from emp e1
left join emp e2
on e1.mgr = e2.empno;
select e1.ename, e1.job, e2.ename, d.dname
from (emp e1 left join emp e2 on e1.mgr = e2.empno)
join dept d
on e1.deptno = d.deptno;
select e.ename,
e.job,
e.sal,
case
when e.sal >= 700 and e.sal <= 1200 then
'1'
when e.sal >= 1201 and e.sal <= 1400 then
'2'
when e.sal >= 1401 and e.sal <= 2000 then
'3'
when e.sal >= 2001 and e.sal <= 3000 then
'4'
else
'5'
end as grade
from emp e;
select e.ename,
e.job,
e.sal,
case g.grade
when 1 then
'A'
when 2 then
'B'
when 3 then
'C'
when 4 then
'D'
when 5 then
'E'
else
'0'
end as grade
FROM emp e, salgrade g
where e.sal BETWEEN g.losal AND g.hisal;
select ename, (sal + nvl(comm, 0)) * 12 total
from emp
order by total desc;
select e.ename, e.job, e.sal, d.dname
from emp e
left join dept d
on e.deptno = d.deptno(+)
and e.sal in (select max(sal) from emp group by deptno)
order by sal desc, ename;
select d.deptno, count(e.empno)
from emp e, dept d
where e.deptno(+) = d.deptno
group by d.deptno;
select dept.dname, nvl(trunc(avg(emp.sal), 2), 0)
from dept
left outer join emp
on emp.deptno = dept.deptno
group by dept.dname;
select dept.dname, count(emp.empno)
from dept
left outer join emp
on emp.deptno = dept.deptno
group by dept.dname;
select deptno, trunc(avg(sal), 2)
from emp
group by deptno
having avg(sal) > 2000;
转载请注明原文地址:https://ipadbbs.8miu.com/read-13498.html