码字定式之SQL(4)
一些子查询
select empno, ename from emp where mgr in(select empno from emp where job='MANAGER');select * from dept where deptno not in (select distinct deptno from emp);select * from dept where deptno not in (select deptno from emp);select empno, ename, sal from emp where mgr=(select empno from emp where ename='SCOTT');select * from emp where sal > 1.4*(select avg(sal) from emp);
insert into dept(deptno, dname, loc) select 50, 'TRAINING', 'PEKING' from dual;update emp set sal=sal*1.2 where exists (select 1 from dept where deptno=emp.deptno and loc='DALLAS');
在写一条孔乙己式样的sql:
update emp set sal=sal*1.2 where exists (select avg(sal) from dept);
简单的层次查询
–-查询7788号雇员的下属和下属的下属……
select level, t.* from emp t start with empno=7788 connect by prior empno=mgr;
–-查询7788号雇员的的上司和上司的上司……
select level, t.* from emp t start with empno=7788 connect by empno=prior mgr;
浙公网安备 33010602011771号