oracle単行サブクエリ

804 ワード

サブクエリは、SELECT、UPDATE、DELETE文の内部にSELECT文が表示されます.内部のSELECT文の結果は,外部文の条件句の一部としてもよいし,外部クエリの一時表としてもよい.サブクエリのタイプは次のとおりです.1.1行サブクエリ:結果は外部に返さないか、1行のみ返されます.2.複数行サブクエリ:ゼロ行、1行または複数行の結果を外部に返します.
単行サブクエリーコードのデモ:販売部(SALES)の下の従業員の名前、仕事、給料をクエリーします.必要な結果情報がすべてEmpテーブルにあるため、
Deptテーブルから販売部の対応する部門番号を検索し、現在の部門番号からEmpテーブルに該当する従業員レコードを検索すればよい.
セールス・テーブルからのクエリの結果は、Empテーブルのクエリの条件として使用できます.SQL文は次のようになります.
SQL> SELECT ENAME,JOB,SAL FROM EMP 
  2  WHERE DEPTNO=(SELECT DEPTNO FROM DEPT WHERE DNAME='SALES')
  3  /

コード解析:内部クエリーの結果を外部クエリーの条件とします.
注意:内部クエリーがレコードを返さない場合、外部条件のフィールドDEPTNOはNULLと比較して常に偽であり、つまり外部クエリーは結果を返さない.1行サブクエリでは、=、>、<、>=、<=、<>などの比較演算子を使用できます.内部クエリが返す結果は、外部クエリ条件のフィールド(DEPTNO)と一致する必要があります.内部クエリが複数行の結果を返すとエラーが発生します.