|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 前のページ 1 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 副問い合わせ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
副問い合わせには、結果がスカラ値になるものと単一行になるもの、および複数行になるものがありますが、Oracle、PostgreSQLともにすべてに対応していますので、基本的に変更の必要はありません。 ただし副問い合わせは、選択リストで使用する場合とFROM句内で使用する場合、およびWHERE句内で使用する場合がありますが、PostgreSQLではFROM句内の副問い合わせには、必ずエイリアスが必要なので注意しましょう。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| スカラ副問い合わせの例 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
スカラ副問い合わせの場合は、OracleとPostgreSQLで構文は変わりません。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SELECT 商品名 FROM 商品マスタ
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| FROM句内で副問い合わせを使用した例 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oracleの例は、必ずしもFROM句内の副問い合わせに別名を付ける必要はありません。しかし、PostgreSQLでは別名を付けないとエラーになります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
OracleのFROM句内の副問い合わせ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SELECT 担当者名
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Postgresの副問い合わせ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SELECT 担当者名
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| なお、この例は単純であるため、副問い合わせを使わずとも書けますが、違いを示すために使用しました。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 相関副問い合わせ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PostgreSQLは、Oracle同様に相関副問い合わせもサポートしていますので、特に変更する必要はありません。相関副問い合わせとは、親文が行を処理するたびに算出される副問い合わせのことです。リスト4にその例を示します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SELECT S.商品ID,
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
リスト4:相関副問い合わせ例 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 結果は図6のようになります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
図6:相関副問い合わせの実行結果 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 真偽値を返す副問い合わせ式 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
真偽値を返す副問い合わせ式には、次のものがあります。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PostgreSQL、Oracleともに、この副問い合わせ式のすべてをサポートしているので、変更の必要はありません。 真偽値を返す副問い合わせでINを使用した例です【注1】。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
※注1:
ただしINを使わなくても書くことはできます。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SELECT 商品名 FROM 商品マスタ
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 結果は図7のようになります。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
商品名
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
図7:真偽値を返す副問い合わせ式の実行結果 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
前のページ 1 2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||

