各AMPの行の順序: 値順またはハッシュ順。
ORDER BY句を指定しない場合、ハッシュ インデックスの行はインデックスを定義する基本テーブルに対して指定されている順序と同じ順序になります。
パーティション プライマリ インデックス テーブルに定義するハッシュ インデックスについて、明示的列リストを含むORDER BY句を指定する必要があります。
BY句を指定した場合、ハッシュ インデックスの定義にORDER BY句を指定する必要があります。
BY句とORDER BY句をどちらも指定しない場合、Teradata Databaseはハッシュ インデックス行が定義されている基本テーブルのプライマリ インデックス列のハッシュによってハッシュ インデックス行を分散します。
その結果、ハッシュ インデックスはAMPローカルになり、行はその列のハッシュによって整列されます。基本テーブルのプライマリ インデックスがUDT列に定義されている場合も同様です。
システム派生PARTITION列またはシステム派生PARTITION#Ln列(nは1から62の範囲の数値)を指定した場合、リクエストは要求元にエラーを返します。
partitionまたはpartition#Lnという名前のユーザー定義列を指定することができます。
ORDER BY VALUESとともにcolumn_name_3リストを指定する場合、column_name_3リストは、4バイト以下のサイズの単一の数値列に制限されます。
この場合、基本テーブルのプライマリ インデックスは、4バイト以下の単一列で構成しなければなりません。
基本テーブルのプライマリ インデックス列をcolumn_name_1セットに含める必要はありません。
ORDER BY VALUESはUDT列に指定することができません。
ハッシュ インデックス行は、基本テーブルのプライマリ インデックスとして指定される列の値によって昇順で格納されます。
column_name_3リストに指定する値は、次のいずれかのデータ型にする必要があります。
- BYTEINT
- DATE
- DECIMAL
- INTEGER
- SMALLINT
ORDER BY HASHを指定する場合、BY句を指定する必要があり、またcolumn_name_2とcolumn_name_3に指定する列は同じである必要があります。
ハッシュ インデックスの行は、それらの列の行ハッシュ値の順序になります。
ORDER BY HASHはUDT列に指定することができます。
HASHキーワードまたはVALUESキーワードを指定することなくORDER BYを指定する場合、Teradata DatabaseはデフォルトでVALUESによって行を並べ替えます。
この場合は、column_name_3リストを指定する必要があります。
ORDER BY句の詳細な資料については、<Teradata Vantage™ SQLデータ操作言語、B035-1146>を参照してください。