構文における繰り返し項目の取り扱い

SELECT ステートメント構文の一部には繰り返し項目が含まれ、1 つ以上の繰り返し項目が繰り返し区切り文字によって区切られています。一部の繰り返しフラグメントの繰り返し区切り文字は、コンマ (,) であったり、定数であったり、オペランドであったり、あるいはスペースである場合もあります。複数の繰り返し項目を指定し、区切り文字が定数であった場合には、「Advanced SELECT Prototyping (拡張 SELECT プロトタイピング)」により正しい区切り文字が挿入されます。それ以外の場合には、他の要素の場合と同様に区切り文字を選択する必要があります。

繰り返し項目を含む SELECT 文節のフラグメントを作成する方法を示す単純な例を選択してみましょう。例えば、スキル・タイプ、等級、および入社年別にグループ化された会社の社員に関する特定の情報 (SELECT ステートメントの残りの部分で指定されます) を表示するとします。

  1. 最初の例 (例 1 (単純な SQL ステートメントの作成) を参照) のステップ 1 ~ 5 を繰り返して、subselect clause (SUBSELECT 文節) の構文が表示されるようにします。
      Process   Options   Utilities   Help
     ──────────────────────────────────────────────────────────────────────────────
     FM/Db2 (DFG2)            Advanced SELECT Prototyping
    
     Prototyping: subselect clause                     Status: clause incomplete
    
     ─ select ─ from ─┬─────────┬─┬───────────┬─┬──────────┬─
                      └─ where ─┘ └─ groupby ─┘ └─ having ─┘
    
    
    
    
    
    
    
    
    
    
    
    
    
     Command ===> _____________________________________________________ Scroll PAGE
      F1=Help      F2=Split     F3=Exit      F4=Deselect  F5=InsRpt    F6=Executed
      F7=Backward  F8=Forward   F9=Swap     F10=PrvRpt   F11=NxtRpt   F12=Cancel
  2. カーソルを「groupby」フラグメントに移動します。
  3. Enter キーを押します。GROUP BY clause (GROUP BY 文節) の構文が表示されます。
      Process   Options   Utilities   Help
     ──────────────────────────────────────────────────────────────────────────────
     FM/Db2 (DFG2)            Advanced SELECT Prototyping
    
     Prototyping: group by clause                      Status: clause incomplete
    
                 ◄─ , ────────────┐
     ─ GROUP BY ─── groupingexpr ─┴─
    
    
    
    
    
    
    
    
    
     GROUP BY
    
    
    
     Command ===> _____________________________________________________ Scroll PAGE
      F1=Help      F2=Split     F3=Exit      F4=Deselect  F5=InsRpt    F6=Executed
      F7=Backward  F8=Forward   F9=Swap     F10=PrvRpt   F11=NxtRpt   F12=Cancel

    FM/Db2 は、パネル上の部分的に作成済みの SQL 文節の中に必須キーワード GROUP BY を表示することに注意してください。

    GROUP BY 文節の構文は、次のものから構成されていることが分かります。
    • 必須キーワードの GROUP BY (画面には白色で表示されます)、
    • 繰り返し項目 groupingexpr (画面には赤色で表示される)
    • 繰り返し区切り文字としてのコンマ (,)
  4. カーソルを「groupingexpr」フラグメントに移動します。
  5. 「InsRpt」機能キー (F5) を押します。列名を入力できるポップアップ・パネルが表示されます。
  6. ポップアップ・パネルで「SKILLTYPE」を入力します。
      Process   Options   Utilities   Help
     ─ ┌───────────────────────── Freeform Entry ─────────────────────────┐ ───────
     F │                                                                  │
       │ Enter a grouping expression to be inserted in the SQL:           │
     P │ SKILLTYPE_______________________________________________________ │ lete
       │ ________________________________________________________________ │
       │ ________________________________________________________________ │
     ─ │ ________________________________________________________________ │
       │ ________________________________________________________________ │
       │ Command ===> ______________________________________ Scroll PAGE  │
       │  F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward  │
       │  F9=Swap     F12=Cancel                                          │
       └──────────────────────────────────────────────────────────────────┘
    
    
    
    
    
    
     GROUP BY
    
    
    
     Command ===> _____________________________________________________ Scroll PAGE
      F1=Help      F2=Split     F3=Exit      F4=Deselect  F5=InsRpt    F6=Executed
      F7=Backward  F8=Forward   F9=Swap     F10=PrvRpt   F11=NxtRpt   F12=Cancel
  7. 「Exit (終了)」機能キー (F3) を押します。列名 SKILLTYPE が GROUP BY 文節に追加されます。
      Process   Options   Utilities   Help
     ──────────────────────────────────────────────────────────────────────────────
     FM/Db2 (DFG2)            Advanced SELECT Prototyping
    
     Prototyping: group by clause                      Status: clause complete
    
                 ◄─ , ────────────┐
     ─ GROUP BY ─── groupingexpr ─┴─
    
    
    
    
    
    
    
    
    
     GROUP BY SKILLTYPE
    
    
    
     Command ===> _____________________________________________________ Scroll PAGE
      F1=Help      F2=Split     F3=Exit      F4=Deselect  F5=InsRpt    F6=Executed
      F7=Backward  F8=Forward   F9=Swap     F10=PrvRpt   F11=NxtRpt   F12=Cancel

    この段階では、FM/Db2 は繰り返し区切り文字をステートメントに追加していないことに注意してください。1 つの繰り返し項目だけを指定している場合には、これが正しい構文です。ただし、FM/Db2 が (以下のステップのように) 複数の繰り返し項目を検出すると、繰り返し区切り文字を挿入します。

  8. ここで再び、カーソルを「groupingexpr」フラグメントに移動します。
  9. 「InsRpt」機能キー (F5) を押して、ポップアップ・パネルを表示します。
  10. ポップアップ・パネルで「EMPGRADE」を入力します。
  11. 「Exit (終了)」機能キー (F3) を押します。繰り返し区切り文字および列名 EMPGRADE が GROUP BY 文節に追加されます。
      Process   Options   Utilities   Help
     ──────────────────────────────────────────────────────────────────────────────
     FM/Db2 (DFG2)            Advanced SELECT Prototyping
    
     Prototyping: group by clause                      Status: clause complete
    
                 ◄─ , ────────────┐
     ─ GROUP BY ─── groupingexpr ─┴─
    
    
    
    
    
    
    
    
    
     GROUP BY SKILLTYPE , EMPGRADE
    
    
    
     Command ===> _____________________________________________________ Scroll PAGE
      F1=Help      F2=Split     F3=Exit      F4=Deselect  F5=InsRpt    F6=Executed
      F7=Backward  F8=Forward   F9=Swap     F10=PrvRpt   F11=NxtRpt   F12=Cancel
  12. STARTYEAR についてステップ 8 から 11 までを繰り返します。
      Process   Options   Utilities   Help
     ──────────────────────────────────────────────────────────────────────────────
     FM/Db2 (DFG2)            Advanced SELECT Prototyping
    
     Prototyping: group by clause                      Status: clause complete
    
                 ◄─ , ────────────┐
     ─ GROUP BY ─── groupingexpr ─┴─
    
    
    
    
    
    
    
    
    
     GROUP BY SKILLTYPE, EMPGRADE, STARTYEAR
    
    
    
     Command ===> _____________________________________________________ Scroll PAGE
      F1=Help      F2=Split     F3=Exit      F4=Deselect  F5=InsRpt    F6=Executed
      F7=Backward  F8=Forward   F9=Swap     F10=PrvRpt   F11=NxtRpt   F12=Cancel
    パネルには、完了した GROUP BY 文節が表示されています。
    GROUP BY SKILLTYPE , EMPGRADE , STARTYEAR
注: フラグメント中に 1 つの繰り返し項目だけが必要であった場合には、カーソルを「groupingexpr」フラグメントに移動してから (ステップ 4)、「InsRpt」機能キー (F5) または Enter キーを押すことができます。

関連するタスク