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?

ORDER

指定どおりに整列されたセットを返します。

返りタイプ

この関数は、セットを返します。

構文および詳細

ORDER(set_expression, ordering_expression, optional_keyword)

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

  • set_expression は、セットに対して評価される式です。このセットとは通常、メンバのセットです。

  • ordering_expression は、セット要素の順序を決定する数値式または文字列式です。

    数値の場合、ordering_expressionは通常、[MEASURES].[measure_name] です。

    この関数は、セットの各要素に対してこの式を評価し、セットの要素をこの値に従って並べ替えます。

  • optional_keyword は、セット内に階層があった場合に、MDX でどのように処理するかを制御します。以下のキーワードのいずれかを使用します。

    • ASC — これを使用すると、階層を保持したまま、(ordering_expression で返された値を使用して) 昇順で並べ替えが行われます。階層順の詳細は、"HIERARCHIZE" を参照してください。

      この関数では、キーワードを省略すると、この方法で並べ替えられます。

    • DESC — これを使用すると、階層を保持したまま、(ordering_expression で返された値を使用して) 降順で並べ替えが行われます。

    • BASC — これを使用すると、階層は保持されず、(ordering_expression で返された値を使用して) すべてのメンバが昇順で並べ替えられます。

    • BDESC — これを使用すると、階層は保持されず、(ordering_expression で返された値を使用して) すべてのメンバが降順で並べ替えられます。

例えば、以下のクエリは、市町村を平均テスト・スコアで降順に並べ替え、各市町村が属する郵便番号を保持します。

SELECT MEASURES.[avg test score] ON 0, 
ORDER(homed.city.MEMBERS, MEASURES.[avg test score], DESC) ON 1 FROM patients
                            Avg Test Score
1 Pine                                75.67
2 Magnolia                            74.65
3 Cypress                             74.61
4 Centerville                         74.85
5 Cedar Falls                         74.62
6 Elm Heights                         74.36
7 Juniper                             74.52
8 Spruce                              74.14
9 Redwood                             74.16

この例で使用されている階層を図で参照するには、FIRSTCHILD 関数を参照してください。

一方、以下の例では、BDESC キーワードを使用し、階層は無視しています。

SELECT MEASURES.[avg test score] ON 0, 
ORDER(homed.city.MEMBERS, MEASURES.[avg test score], BDESC) ON 1 FROM patients
                            Avg Test Score
1 Pine                                75.67
2 Centerville                         74.85
3 Magnolia                            74.65
4 Cedar Falls                         74.62
5 Cypress                             74.61
6 Juniper                             74.52
7 Elm Heights                         74.36
8 Redwood                             74.16
9 Spruce                              74.14

別の例として、以下のクエリは、文字列メジャーを (計算メンバとして) 定義し、これを ORDER 関数で使用します。

WITH MEMBER measures.stringtest AS 'IIF(MEASURES.[avg test score]<75, "low","high")' 
SELECT {MEASURES.[avg test score],MEASURES.stringtest} on 0, 
ORDER(homed.city.MEMBERS,measures.stringtest,BASC) ON 1 FROM patients
                      Avg Test Score           stringtest
1 Pine                          75.67                 high
2 Cedar Falls                   74.62                  low
3 Centerville                   74.85                  low
4 Cypress                       74.61                  low
5 Elm Heights                   74.36                  low
6 Juniper                       74.52                  low
7 Magnolia                      74.65                  low
8 Redwood                       74.16                  low
9 Spruce                        74.14                  low

関連項目

FeedbackOpens in a new tab