回覆列表
-
1 # 使用者9974096024714
-
2 # 使用者1465424935672
不管在什麼情況下子查詢能夠保證放回值是1、=等;
否則要採用多行比較符:IN、> ANY 、> ALL、
舉例說明:
1、單行子查詢 -- 查詢部門在"NEW YORK"的所有僱員資訊。
SELECT * FROM emp WHERE deptno=(SELECT deptno FROM dept WHERE loc="NEW YORK");
語句中子查詢SELECT deptno FROM dept WHERE loc="NEW YORK"的返回確定只有一個。
2、多行子查詢 -- 查詢工資低於2000的僱員所屬部門名稱。
SELECT * FROM dept WHERE deptno IN (SELECT deptno FROM emp WHERE sal
語句中子查詢SELECT deptno FROM emp WHERE sal
不管在什麼情況下子查詢能夠保證放回值是1<=1行,則可採用單行比較符:=、<、>、<=、>=等;否則要採用多行比較符:IN、>ANY、>ALL、<ANY、<ALL等。舉例說明:1、單行子查詢--查詢部門在"NEWYORK"的所有僱員資訊。SELECT*FROMempWHEREdeptno=(SELECTdeptnoFROMdeptWHEREloc="NEWYORK");語句中子查詢SELECTdeptnoFROMdeptWHEREloc="NEWYORK"的返回確定只有一個。2、多行子查詢--查詢工資低於2000的僱員所屬部門名稱。SELECT*FROMdeptWHEREdeptnoIN(SELECTdeptnoFROMempWHEREsal<2000);語句中子查詢SELECTdeptnoFROMempWHEREsal<2000佣金小於2000的部門不能確定有幾個,因此,採用多行比較符IN。