Concept Information

レコードの並べ替え

Analytics テーブルのレコードを、指定されたキーに基づいて昇順または降順に並べ替えます。結果は新しい物理的に並べ替えられた Analytics テーブルに出力されます。

SORT {<ON> キーフィールド <D> <...n>|<ON> ALL <EXCLUDE フィールド名 <...n>>} <FIELDS フィールド名 <AS 新しいフィールド名> <...n>|FIELDS ALL> <関連テーブル名.ALL <...n>> <EXCLUDE フィールド名 <...n>> TO テーブル名 <LOCAL> <IF テスト> <WHILE テスト> <FIRST 範囲|NEXT 範囲> <APPEND> <OPEN> <ISOLOCALE ロケールコード>
名前 説明
ON キーフィールド D <...n> | ON ALL

並べ替えで使用するキーフィールドまたはフィールド、または式。

演算フィールドや一時的に作成した式など、データ型に関係なく、あらゆる種類のフィールドを並べ替えることができます。

  • ON キー フィールドでは、指定した 1 つまたは複数のフィールドが使用されます。

    複数のフィールドで並べ替えを行う場合は、出力テーブルは入れ子で並べ替えられます。入れ子でのフィールド間の順序は、フィールドを指定した順になります。

    キー フィールドを降順に並べ替える D を含めます。デフォルトのソート順は昇順です。

  • ON ALL では、テーブル内のすべてのフィールドが使用されます。

    テーブル内のすべてのフィールドを基準にして並べ替えを行うと、出力テーブルが入れ子で並べ替えられます。入れ子でのフィールド間の順序は、テーブル レイアウトで指定した順になります。

    ON ALL では昇順でしか並べ替えることができません。

EXCLUDE フィールド名

省略可能

ON ALL を使用して並べ替えるときにのみ有効です。

コマンドから除外するフィールド。EXCLUDE では、指定したフィールドを除外して、ON ALL を微調整できます。

EXCLUDE は ON ALL の直後に置く必要があります。例:

ON ALL EXCLUDE field_1 field_2

FIELDS フィールド名 <...n> | FIELDS ALL

省略可能

メモ

キー フィールドは、自動的に出力テーブルに追加されるため、FIELDS に指定する必要はありません。

出力に含めるフィールド:

  • FIELDS フィールド名 指定されたフィールドを使用します

    フィールドは一覧の順序で使用されます。

    関連テーブルのフィールドを使用する場合は、related_table_name.field_name(関連テーブル名.フィールド名)を指定します。

    演算フィールドを出力先テーブル内の適切なデータ型(ASCII 型または Unicode 型(Analytics のエディションによる)、ACL 型(ネイティブの数値データ型)、日付時刻型、あるいは論理型)の物理フィールドに変換します。演算された実際の値を物理フィールドに設定します。

  • FIELDS ALL テーブルのすべてのフィールドを使用します。

    フィールドは、テーブル レイアウトに現れる順序と同じ並びで使用されます。

    演算フィールドを出力先テーブル内の適切なデータ型(ASCII 型または Unicode 型(Analytics のエディションによる)、ACL 型(ネイティブの数値データ型)、日付時刻型、あるいは論理型)の物理フィールドに変換します。演算された実際の値を物理フィールドに設定します。

  • FIELDS を省略する場合 レコード全体、つまりすべてのフィールドとレコードの未定義部分すべてが、並べ替え後の出力テーブルに追加されます。

    フィールドは、テーブル レイアウトに定義されているとおりの順に使用されます。

    演算フィールドは保持されます。

ヒント

レコードに含まれるデータの一部のみが必要な場合は、並べ替え後の出力テーブルにすべてのフィールド、つまりレコード全体が含まれないようにしてください。必要なフィールドのみを選択します。多くの場合、これにより、並べ替え処理が高速化します。

AS 新しいフィールド名

省略可能

FIELDS を使用するときにのみ有効です。

出力テーブルのフィールドの新しい物理名と表示名(代替の列タイトル)。

指定した特殊文字やスペースは表示名に保持され、テーブル レイアウトの物理フィールド名では自動的にアンダースコア (_) に変換されます。

新しいフィールド名 を引用符で囲んだ文字列として指定します。表示名に改行を入れたい場合は、語句の間にセミコロン (;) を入れます。

メモ

AS は、新しいテーブルへの出力時にのみ使用します。既存のテーブルに追加している場合は、既存テーブルの代替列見出しが優先されます。

関連テーブル名.ALL

省略可能

指定された関連テーブルのすべてのフィールドを使用します。

EXCLUDE フィールド名

省略可能

FIELDS ALL または 関連テーブル名.ALL を使用したときのみ有効です。

コマンドから除外するフィールド。EXCLUDE では、指定したフィールドを除外して、ALL キーワードを微調整できます。

EXCLUDE は、FIELDS ALL の直後、または 1 つ以上の関連テーブルのフィールドを含める場合は ALL キーワードの最後の出現の直後に続く必要があります。例:

FIELDS ALL EXCLUDE field_1 field_2
FIELDS ALL 関連テーブル名.ALL EXCLUDE field_1 field_2
TO テーブル名

コマンドの結果を送信する場所:

  • テーブル名は、結果の保存先となる Analytics テーブルのことです。

    テーブル名には、ファイル拡張子 .FIL を付けた文字列を引用符で囲んで指定する必要があります。例:TO "Output.FIL"

    デフォルトでは、テーブル データ ファイル(.fil)は、Analytics プロジェクトが入っているフォルダーに保存されます。

    既存の異なるフォルダーにデータ ファイルを保存するには、絶対または相対ファイル パスを指定します。

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    メモ

    テーブル名は 64 文字の英数字(.FIL 拡張子を含まない)に制限されています。名前にはアンダースコア文字(_)を使用できますが、他の特殊文字やスペースは使用できません。名前の先頭を数字にすることはできません。

LOCAL

省略可能

Analytics プロジェクトと同じ場所に出力ファイルを保存します。

メモ

Analytics テーブルである出力ファイルを含むサーバー テーブルに対してコマンドを実行するときにのみ適用されます。

LOCAL パラメーターは TO パラメーターの直後に置く必要があります。

IF テスト

省略可能

各レコードを処理するために真である必要がある条件式。コマンドは、その条件を満たすレコードに対してのみ実行されます。

メモ

IF パラメーターは、任意の範囲パラメーター(WHILE、FIRST、NEXT)が適用された後に、テーブルに残るレコードに対してのみ評価されます。

WHILE テスト

省略可能

各レコードを処理するために真である必要がある条件式。条件が false と評価するか、テーブルの最後に達したら、コマンドは実行を中止します。

メモ

WHILE を FIRST または NEXT とともに使用する場合は、1 つの制限に達するとすぐに、レコードの処理が停止します。

FIRST 範囲 | NEXT 範囲

省略可能

処理するレコード数:

  • FIRST 指定されたレコード数に達するまで、最初のレコードから処理を開始します
  • NEXT 指定されたレコード数に達するまで、現在選択されているレコードから処理を開始します

範囲は処理するレコード数を指定します。

FIRST と NEXT を省略すると、すべてのレコードがデフォルトで処理されます。

APPEND

省略可能

コマンドの出力を既存ファイルに上書きしないで、そのファイルの末尾に追加します。

メモ

コマンドの出力と既存のファイルの構造が同一であるようにする必要があります。

  • 同じフィールド
  • 同じフィールド順序
  • 一致するフィールドが同じ長さ
  • 一致するフィールドが同じデータ型

出力は、既存ファイルとの間でファイル構造が違っている場合でも、Analytics によって既存ファイルに追加されます。出力と既存のファイルの構造が一致しない場合は、データが混在、不足、不正確になります。

OPEN

省略可能

テーブルを開き、インデックスをテーブルに適用します。

ISOLOCALE ロケールコード

省略可能

メモ

Analytics の Unicode 版にのみ適用されます。

システム ロケールは「言語-」の形式で入力します。たとえば、カナダ フランス語はコード「fr_ca」を入力します。

次のコードを使用します。

  • 言語 ISO 639 標準言語コード
  • ISO 3166 標準国コード

    国コードを指定しない場合は、言語のデフォルト国が使用されます。

ISOLOCALE を使用しない場合は、デフォルト システム ロケールが使用されます。

単一のフィー津おで並べ替え、レコード全体を出力する

サンプル Inventory テーブルのレコードを製品番号で並べ替えるとします。並べ替えられたレコードは、新しい Analytics テーブル Inventory_Product_Number に抽出されます。

レコード全体が出力テーブルに含まれます。

SORT ON ProdNo TO "Inventory_Product_Number"

デフォルトの昇順を降順に変更するには、キー フィールド名の後に D を追加します。

SORT ON ProdNo D TO "Inventory_Product_Number"

単一のフィールドで並べ替え、フィールドのサブセットを出力する

サンプル Inventory テーブルのレコードを製品番号で並べ替えるとします。キー フィールドと指定された非キー フィールドのみが新しい Analytics テーブル Inventory_Quantity_on_Hand に抽出されます。

3 番目の非キーフィールド QtyOH に対し、出力テーブルでの表示名として Qty on Hand(在庫数量)、および物理フィールド名として Qty_on_Hand が指定されます。

SORT ON ProdNo FIELDS ProdDesc ProdStat QtyOH AS "Qty on Hand" TO "Inventory_Quantity_on_Hand"

単一のフィールドで並べ替え、すべてのフィールドを出力する

サンプル Inventory テーブルのレコードを製品番号で並べ替えるとします。すべてのフィールドは、新しい Analytics テーブル Inventory_Product_Number に抽出されます。

FIELDS ALL がレコード全体の出力と異なる点は、FIELDS ALL では、ソース テーブルのすべての演算フィールドが出力テーブルの物理フィールドに変換され、フィールドに実際の演算された値が入力されることです。

SORT ON ProdNo FIELDS ALL TO "Inventory_Product_Number"

複数のフィールドで並べ替える(ネストされた並べ替え)

サンプル Inventory テーブルのレコードをロケーション、製品クラス、製品番号の順で並べ替えるとします。並べ替えられたレコードを、新しい Analytics テーブル Inventory_Location_Class_Number に抽出します。以上を行うコマンドの例は次のようになります。

SORT ON Location ProdCls ProdNo TO "Inventory_Location_Class_Number"

関連するフィールドを使用して並べ替える

サンプル Ap_Trans テーブルのレコードを次のフィールドで並べ替えるとします。

  • Vendor_State(業者が拠点とする州。関連:Vendor テーブル)
  • Vendor_City(業者が拠点とする市区町村。関連:Vendor テーブル)
  • Vendor_No(業者番号。Ap_Trans テーブル)

すべての 3 つのキー フィールド、および関連するフィールド Vendor.Vendor_Name を含む指定された非キー フィールドを、新しい Analytics テーブル Ap_Trans_State_City に抽出する例を次に示します。

SORT ON Vendor.Vendor_State Vendor.Vendor_City Vendor_No FIELDS Vendor.Vendor_Name Invoice_No Invoice_Date Invoice_Amount Prodno Quantity Unit_Cost TO "Ap_Trans_State_City"

このコマンドの動作の詳細については、レコードの並べ替えを参照してください。

SORT コマンドの並べ替えシーケンス

SORT コマンドは、[並べ替え順序]オプション([ツール > オプション > テーブル])で指定された並べ順を使用します。デフォルトの並べ替え順序は次のとおりです。

詳細については、[並べ替え順]オプションとソート順序を参照してください。

Analytics のエディション

[並べ替え順]のデフォルト

関連付けられているソート順序

非 Unicode

システム デフォルト

(ASCII)

数字、大文字、小文字、小文字:

0, 1, 2... A, B, C... a, b, c...

たとえば、"Z" は "a" の前にソートされます。

Unicode

混合言語(UCA)

(Unicode 照合アルゴリズム)

数字、小文字と大文字の混合:

0, 1, 2... a, A, b, B, c, C...

たとえば、"a" は "Z" の前にソートされます。

大文字と小文字の区別

SORT は大文字と小文字を区別します。ご使用の Analytics のエディション(非 Unicode または Unicode)によって、文字列の大文字と小文字が並べ替えに影響する場合があります。

大文字と小文字が並べ替えに影響しないようにしたい場合は、SORT と一緒に UPPER( ) 関数を使用できます。

SORT ON UPPER(キー フィールド) TO "Sorted_Table"

関連するフィールドで並べ替える

関連するフィールドで並べ替え、並べ替えられた出力テーブルに、非キー フィールドとして関連するフィールドを含めることができます。SORT コマンドで関連するフィールドを参照するには、子テーブル名.フィールド名を指定します。

固定長データ ファイルと可変長データ ファイルの比較

SORT コマンドは固定長、可変長いずれのデータ ファイルでも使用することができます。