副選択

副選択 は、全選択のコンポーネントの 1 つです。

Read syntax diagramSkip visual syntax diagramselect-clausefrom-clausewhere-clausegroup-by-clausehaving-clause order-by-clause offset-clause fetch-clause isolation-clause

副選択は、FROM 節で指定される表、ビュー、 またはニックネームから派生する結果表を指定します。 この派生の方法は、各操作の結果が次の演算の入力になるような、 一連の操作として記述することができます。 (これは、副選択を記述する 1 つの方法にすぎません。 派生操作を実行するために使用されるメソッドは、この記述とはまったく異なる場合があります。 副選択の中に、正しい結果を得るために実際は実行する必要がない部分があれば、その部分は実行されることもされないこともあります。)

『SQL 照会』の許可セクションでは、副選択 の許可について取り上げられています。

副選択の節は以下の順序で処理されます。
  1. FROM 文節
  2. WHERE 節
  3. GROUP BY 節
  4. HAVING 節
  5. SELECT 節
  6. ORDER BY 文節
  7. OFFSET 節
  8. FETCH 節
ORDER BY 節、OFFSET 節、または FETCH 節を含む副選択は指定できません。
  • ビューの最外部の全選択。
  • マテリアライズ照会表の外部の全選択。
  • 副選択が括弧で囲まれていない場合。
例えば、以下は無効です (SQLSTATE 428FJ)。
SELECT * FROM T1
   ORDER BY C1
UNION
SELECT * FROM T2
   ORDER BY C1
以下の例は有効です
(SELECT * FROM T1
   ORDER BY C1)
UNION
(SELECT * FROM T2
   ORDER BY C1)
注: 副選択の ORDER BY 文節は、照会によって戻される行順序には影響を与えません。 ORDER BY 節は最外部の全選択で指定された場合にのみ、戻される行の順序に影響します。
副選択照会の節について詳しくは、以下のトピックを参照してください。