検索

[Oracle] データ検索 副問い合わせ基本SQL

データの検索(副問い合わせの基本)

単一行副問い合わせ

副問い合わせとは、ある結果を抽出するためのSELECT文の中で、さらにSELECT文を使用する検索方法です。
言葉ではわかりにくいので、実際に例を見ていきましょう。

SELECT 列1, 列2 ・・・ FROM テーブル1
WHERE 列1 = (SELECT 列1 FROM テーブル1 WHERE 条件1);

それではサンプルを見てみましょう。
以下のようなteamテーブルがあります。

id name hr
1 荒木 太郎 1
2 井端 次郎 4
3 森野 三郎 20
4 和田 四郎 35

hr列の値が平均値より大きいデータを抽出するSQLです。

上記を実行し、抽出された結果がこちらです。

id name hr
3 森野 三郎 20
4 和田 四郎 35

hr列の値が平均値より大きいデータが抽出されました。
 
単一行副問い合わせでは、副問い合わせの結果が1行である必要があります。
また、副問い合わせ結果との比較には「=」「!=」「>=」等、通常のWHERE句同様、各種演算子が使用できます。
 
 
以上が、副問い合わせの基本、単一行副問い合わせです。
なお、副問い合わせはWHERE句だけでなく、SELECT句やFROM句にも使用できますので、ぜひ参考にしてみてください。