Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

DRILLTHROUGH 文

指定された SELECT 文の結果の最初のセルに関連付けられた最下位レベルのデータを表示します。

構文および詳細

DRILLTHROUGH optionalmaxrows select_statement

または、以下のようにします。

DRILLTHROUGH optionalmaxrows select_statement RETURN fieldname1, fieldname2, ...

または、以下のようにします。

DRILLTHROUGH optionalmaxrows select_statement RETURN fieldname1, ... %ORDER BY fieldname3, ...

または、以下のようにします。

DRILLTHROUGH optionalmaxrows select_statement %LISTING [listingname]

以下は、この指定の説明です。

  • optionalmaxrows (オプション) は、MAXROWS 整数の形式です。

    この引数は、返される行の最大数を指定します。既定値は 1,000 です。

  • select_statement は、SELECT を使用する文です。

  • fieldname1fieldname2fieldname3fieldname4 (以降同様) は、キューブで使用されるベース・クラスにあるフィールドの名前です。

  • listingname は、詳細リストの名前です。このリストが既に定義されており、ユーザがそれを使用する権限を持っている必要があります。この名前にスペースが含まれていない場合は、名前を囲む角括弧を省略することができます。リストの名前は大文字と小文字が区別されます。

RETURN 節で、表示するフィールドを指定します。%ORDER BY 節は、MDX に対する InterSystems 拡張機能です。この節が含まれている場合、この節で、表示されているレコードの並べ替え方法を指定します。

%LISTING 節は、もう 1 つの、MDX に対する InterSystems 拡張機能です。この節では、使用するリストを指定します。この節を指定すると、そのリストで指定されているフィールドが表示されます。

RETURN 節または %LISTING 節を指定しないと、クエリは、DeepSee キューブで定義された既定のリストを使用します。

DeepSee は、内部で SQL クエリを構築して使用します。

Important:

SELECT 文が複数のデータ・セルを返した場合、リストに表示されるのは、最初のセルに関連付けられたフィールドのみです。

RETURN および ORDER BY の追加オプション

RETURN 節および %ORDER BY 節では、以下の点に注意してください。

  • Caché の矢印構文を使用すると、別のテーブルのプロパティを参照できます。"Caché SQL の使用法" で “暗黙結合 (矢印構文)” を参照してください。

  • エイリアスを組み込むことができます。

  • 標準的な SQL 関数および Caché 関数を使用できます。標準的な SQL 関数を使用するには、これを括弧で囲み、関数名がフィールド名と解釈されないようにします。Caché SQL 関数は、パーセント文字 (%) が先頭にあるため、括弧で囲む必要はありません。

  • field_name ではなく、source.field_name を使用すると、より高度な SQL 機能を使用できます。

以下はその例です。

... RETURN %ID,%EXTERNAL(Field1) F1,'$'||source.Sales Sales

任意のリストの最初の行は、フィールド名またはそのエイリアスを示すヘッダです。リストの各ヘッダの下にデータ列があります。この場合、列は以下のようになります。

  • %ID — この列には %ID フィールドが表示されます。

  • F1 — この列は、Caché SQL %EXTERNAL 関数を使用して、Field1 フィールドの値を DISPLAY 形式で返します。

  • Sales — この列には、Sales フィールドが表示され、先頭にドル記号 ($) が付加されています。

最初の例は、RETURN を使用しません。したがって、キューブに定義されている既定のリストが使用されます。

DRILLTHROUGH SELECT homed.Magnolia ON 1 FROM patients
 
   #  PatientID  Age        Gender     TestScore  HomeCity   DoctorGrou
   1: SUBJ_10161 0          F          76         3          I
   2: SUBJ_10330 0          F                     3          II
   3: SUBJ_10554 0          F          68         3          II
   4: SUBJ_10555 0          F          78         3          II
   5: SUBJ_10686 0          F          91         3          I
...

次の例は、MAXROWS 引数を使用します。

DRILLTHROUGH MAXROWS 3 SELECT homed.Magnolia ON 1 FROM patients
 
   #  PatientID  Age        Gender     TestScore  HomeCity   DoctorGrou
   1: SUBJ_10161 0          F          76         3          I
   2: SUBJ_10330 0          F                     3          II
   3: SUBJ_10554 0          F          68         3          II

次の例は、RETURN 節を使用します。

DRILLTHROUGH SELECT homed.Magnolia ON 1 FROM patients RETURN Gender, HomeCity->PostalCode 
   #  Gender         PostalCode
   1: F              34577
   2: F              34577
   3: F              34577
   4: F              34577
   5: F              34577
...

次の例は、%ORDER BY 節も使用します。

DRILLTHROUGH SELECT homed.Magnolia ON 1 FROM patients RETURN PatientID, Age, Gender %ORDER BY Age
 
   #  PatientID      Age            Gender
   1: SUBJ_101616    0              F
   2: SUBJ_102705    0              M
   3: SUBJ_103210    0              M
   4: SUBJ_103300    0              F
   5: SUBJ_103972    0              M
...

最後の例は、2 つのフィールド名で %ORDER BY 節を使用し、順序を指定します。

DRILLTHROUGH SELECT homed.Magnolia ON 1 FROM patients RETURN PatientID, Age, Gender %ORDER BY Gender, Age
 
   #  PatientID      Age            Gender
   1: SUBJ_101616    0              F
   2: SUBJ_103300    0              F
   3: SUBJ_105548    0              F
   4: SUBJ_105556    0              F
   5: SUBJ_106865    0              F
...

この場合、レコードはまず性別で並べ替えられます。各性別の中で、さらに年齢で並べ替えられます。

FeedbackOpens in a new tab