子查詢:相關子查詢,不相關子查詢
-- 不相關子查詢
-- 一條SQL語句含有多個select,先執行子查詢,在執行外部查詢。子查詢可以獨立運行,成為不相關子查詢。
-- 需求1:查詢所有比姓名為“CLARK”工資高的員工的信息。
-- 1.先查詢出姓名為CLARK的工資信息
SELECT * FROM emp;
SELECT SAL FROM emp WHERE ENAME='CLARKE';
-- 2.在查詢比當前工資高的員工
SELECT * FROM emp WHERE SAL>(SELECT SAL FROM emp WHERE ENAME='CLARKE');
-- 需求2:查詢所有和姓名為“AAA”工資相等的員工信息
-- 1.先查詢姓名為AAA的員工薪資
SELECT SAL FROM emp WHERE ENAME="AAA";
-- 2.在查詢薪資和AAA相等的員工
SELECT * FROM emp WHERE SAL=(SELECT SAL FROM emp WHERE ENAME="AAA");
-- 需求:3:查詢工資低于任意一個崗位為“CLERK”的工資雇員信息
-- 查詢崗位為CLERK的所有薪資
SELECT * FROM emp;
SELECT SAL FROM emp WHERE JOB="CLERK";
-- 小于任意一個工資,相當于小于最高工資
SELECT * FROM emp WHERE SAL<ANY(SELECT SAL FROM emp WHERE JOB="CLERK");
-- 小于所有工資,相當于小于最低工資,
SELECT * FROM emp where sal <all(SELECT SAL FROM emp WHERE JOB="CLERK");
SELECT * FROM emp where sal <(SELECT MIN(SAL) FROM emp WHERE JOB="CLERK");
-- 工資等于其中任何一個,工資等于800 or 300 or 1100 or 950 or 1300
SELECT * FROM emp where sal in (SELECT SAL FROM emp WHERE JOB="CLERK");