演算キー フィールドを使った並べ替えとインデックスの作成
キー フィールド内のデータの書式が、テーブルの正確な並べ替えやインデックス付けを妨げている場合は、演算キー フィールドを作成することにより、正確な結果を得られる場合があります。並べ替えやインデックス付けを妨げるデータ書式の例として、数値に含まれる数字以外のプレフィックスや先頭のスペースに一貫性がない、大文字で始める名前に一貫性がない、などが挙げられます。演算キー フィールドを作成して、データの一貫性を確保してから、演算キー フィールドを使用して並べ替えやインデックスの作成ができます。
また、厳密にキー フィールドの値の順番どおりではない方法でテーブルを整列させるために、演算キー フィールドを使用して並べ替えやインデックス付けを行うこともできます。たとえば、演算キー フィールドを使用して、テーブル内のレコードの物理順序を逆にしたり、偶数の金額値をグループ化したり、特定の文字列を含んでいる名前をグループ化したりすることができます。
演算キー フィールド値を表示する
演算キー フィールドを使用してインデックス付けを行う最良の実践は、ビューに演算フィールドを追加することです。そうすると、演算フィールドを使用してどのようにテーブルのインデックスが作成されるかを正確に見ることができます。演算キー フィールドを使用して並べ替えを行った場合、新しい並べ替え済みのテーブルには、その演算フィールドが自動的に含まれます。
並べ替えおよびインデックス処理で直接式を取り込み、演算キー フィールドと同じ結果を得ることができます。ただし、このアプローチは推奨されません。テーブルを並べ替えるために使用されている演算値が表示されないためです。
演算キー フィールドを使った並べ替えとインデックスの作成の例
演算キー フィールドを使った並べ替えとインデックスの作成の複数の例は以下のとおりです。比較のため、物理キー フィールドの非演算、順次的な順序も含まれます。
説明/演算キー フィールド式 |
Analytics 関数 |
キー フィールド (物理的な順序) |
キー フィールド (順次的な順序、Analytics 非 Unicode) |
演算キー フィールド (順次的な順序) |
キー フィールド (演算キー フィールドの順序に基づく順序) |
---|---|---|---|---|---|
数字以外の文字とスペースを無視し、数字のみを並べ替え/インデックスの対象とします INCLUDE(dept_ID, "1234567890") |
INCLUDE( ) |
92 12 T-38 20 #85 |
20 #85 12 92 T-38 |
12 20 38 85 92 |
12 20 T-38 #85 92 |
大文字と小文字の違いによって並べ替え/インデックスの相違が生じないようにします UPPER(last_name) |
UPPER( ) |
Smythe JONES Smith JOHNSON SMYTHE Jones SMITH Johnson |
JOHNSON JONES Johnson Jones SMITH SMYTHE Smith Smythe |
JOHNSON JOHNSON JONES JONES SMITH SMITH SMYTHE SMYTHE |
JOHNSON Johnson JONES Jones Smith SMITH Smythe SMYTHE |
テーブル内のレコードの物理的な順序を逆にします メモ 演算キー フィールドは降順である必要があります。レコード番号は、降順が適用されても常に昇順で表示されます RECNO( ) |
RECNO( ) |
82.12 87.00 62.79 97.47 43.00 |
43.00 62.79 82.12 87.00 97.47 |
1 2 3 4 5 |
43.00 97.47 62.79 87.00 82.12 |
偶数の金額をグループにし、グループ内の金額を順番に並べます メモ 演算キー フィールド内で、キー フィールドの並べ替え/インデックスを入れ子にする必要があります MOD(trans_amount, 1.00) |
MOD( ) |
82.12 87.00 62.79 97.47 43.00 |
43.00 62.79 82.12 87.00 97.47 |
0.00 0.00 0.12 0.47 0.79 |
43.00 87.00 82.12 97.47 62.79 |
特定の文字列を含んでいる値をグループにし、グループ内の値を順番に並べます メモ 演算キー フィールドは降順である必要があります。演算キー フィールド内で、キー フィールドの並べ替え/インデックスを入れ子にする必要があります FIND("Hardware", vendor_name) |
FIND( ) |
Lilydale Hardware |
Binford Tools |
T |
Global Trade Hardware |
Triathalon Group |
Bolton Distribution |
T |
Lilydale Hardware |
||
Wholesome Hardware |
Global Trade Hardware |
T |
Wholesome Hardware |
||
Steel Case Manufacturing |
Industrial Equipment Co-Op |
F |
Binford Tools |
||
Industrial Equipment Co-Op |
Lilydale Hardware |
F |
Bolton Distribution |
||
Global Trade Hardware |
Steel Case Manufacturing |
F |
Industrial Equipment Co-Op |
||
Binford Tools |
Triathalon Group |
F |
Steel Case Manufacturing |
||
Bolton Distribution |
Wholesome Hardware |
F |
Triathalon Group |
手順
演算キー フィールドを使った並テーブルのべ替えとインデックスの作成の手順については、下記の一般的な用語で説明されています。
演算フィールドの作成や、並べ替えまたはインデックスの実行に関する詳細については、このガイドの関連するセクションを参照してください。
- 適切な式を使用して、並べ替えまたはインデックスの物理キー フィールドに基づいた演算キー フィールドを作成します。
- インデックス操作を実行しようとしている場合は、ビューに演算キー フィールドを追加します。
- 演算フィールドをキー フィールドとして使用して、通常の並べ替えまたはインデックスの手順を実行します。
- 必要であれば、演算キー フィールドに降順を指定します。一部の式では、テーブルの上部に結果を配置するために、降順であることを必要とします。
- 演算キー フィールド式によって作成されたグループ内の結果を順番に並べたい場合は、並べ替えやインデックスを構成するときに、演算キー フィールドと物理キー フィールドの両方を選択します。演算キー フィールドが物理キー フィールドより優先されるよう、最初に演算キー フィールドを選択するようにしてください。