三流備忘録OracleのSQL PL/SQL 関数 ついての備忘録
副問い合わせ
説明
・副問い合わせは、WHERE句、FROM句、HAVING句などで指定できる。
【単一行副問い合わせ】
・単一行の比較演算子を使用する。
・副問い合わせの結果として一行を返す。
・副問い合わせの結果が複数行の場合エラーとなる。
【複数行副問い合わせ】
・複数行比較演算子を使用する。(IN、ANY、ALL)
・副問い合わせの結果として複数行を返す。
例<
/******************************************************
単一行副問い合わせ
******************************************************/
SELECT name FROM TABLE_HOGE
WHERE 給与 > (SELECT 給与 FROM TABLE_給与 WHERE id = 1);
/******************************************************
複数行副問い合わせ
******************************************************/
SELECT name FROM TABLE_HOGE
WHERE 給与 > ALL (SELECT 給与 FROM TABLE_給与 WHERE deptid = 1);
/******************************************************
いろんな副問い合わせ
******************************************************/
SELECT *
FROM TABLE1 T1,
TABLE2 T2,
(SELECT deptid,deptname FROM TABLE_DEPT WHERE deptid = 1) T3
WHERE T1.id = T2.id
AND T1.deptid = T3.deptid
AND T1.salary > ALL (SELECT AVG(salary) FROM TABLE4);