副問い合わせ

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP SQL書式

副問い合わせ


スポンサードリンク
スポンサードリンク


副問い合わせ



副問い合わせとは、SELECT文に埋め込まれたSELECT文です。副問い合わせは、SELECT文のFROM句、WHERE句、HAVING句やUPDATE文のSET句、WHERE句またはDELETE文のWHERE句など様々な場面で用いることができます。副問い合わせには3種類あります。

@単一行副問い合わせ:内側のSELECT文が一行のみ戻す問い合わせ
A複数行副問い合わせ:内側のSELECT文が複数行戻す問い合わせ
B複数列副問い合わせ:内側のSELECT文が複数列を戻す問い合わせ


副問い合わせで使用する比較条件
【IN、ANY、ALL、NOT IN、=、>】
複数行が戻される可能性がある場合は、=、>は使用できません。=、>を使用する場合は単一行副問い合わせの際に限られます。

使用例) =>ANY
(副問い合わせで戻されたすべて値以上であればよい)

SQL> SELECT * FROM TEST3;

NUM NAME  NO
---  --    ----------
111  AAA   10
222  BBB   20
333  CCC   30
444  DDD   10

SQL> SELECT * FROM TEST4;

NO      PLACE
---------- ----------
10       TOKYO
20       OSAKA
30       HUKA
40       NAGA

SQL> SELECT PLACE FROM TEST4 WHERE NO IN (SELECT NO FROM TEST3);

PLACE
----------
HUKA
OSAKA
TOKYO

SQL> SELECT PLACE FROM TEST4 WHERE NO NOT IN (SELECT NO FROM TEST3);

PLACE
----------
NAGA


SQL> SELECT PLACE FROM TEST4 WHERE NO > (SELECT AVG(NO) FROM TEST3);

PLACE
----------
OSAKA
HUKA
NAGA


※副問い合わせがNULL値を戻す場合もしくは1行も戻されない場合、いずれも主問い合わせは行を戻しません。ただしIN演算子の場合は、いずれかの値と一致すればよいためどれかにマッチすれば主問い合わせはNULL値以外と比較し結果を戻します。


集合演算子

集合演算子とは、2つ以上の副問い合わせ結果を1つの結果に結合するものです。ただし集合演算子は表の結合とは違うのでその違いを理解する必要があります。





スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved