ORDER BY句の構文 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage
ORDER BY value_spec [,...]

構文要素

value_spec
{ expression | column_name | column_name_alias | column_position }
  [ ASC |DESC ] [ NULLS { FIRST | LAST } ]
expression
行をソートするSQL式。式は、式リストの式の位置を名前や定数で指定できます。
ソート フィールドが文字列の場合、ORDER BY句に使用されるexpressionに型修飾子を含めて、ソートをCASESPECIFICまたはNOT CASESPECIFICにすることができます。
スカラー サブクエリーやスカラーUDFを指定することは可能ですが、ORDER BY式リストにBLOB、CLOB、ARRAY、またはVARRAYデータ型を持つ列を参照することはできません。
指定した最初の整列列によって、最初の整列に使用される列が決定されます。その他の指定した整列列によって、指定した列の順序に基づいて後続の整列が決定されます。
複数の整列列を指定した場合、前の整列列(複数の場合もある)について同じ値を持つ行が整列されます。
column_name
行を整列する列の名前。順序付きの列は、SELECT式リストの一部として指定される必要はありません。
列は最大で64個指定できます。
column_name_aliasではなくcolumn_nameを指定できます(詳細はcolumn_name_alias要素の説明を参照)。column_name_aliasは、テーブル定義の物理的な列と同じ名前であってはなりません。同じ名前である場合、column_positionではなく、column_name_aliasを指定する必要があります。例: 列名の別名の順序付けを参照してください。
指定する列にBLOB、CLOB、ARRAY、VARRAYデータ型を持つことはできません。
column_name_alias
問合わせのSELECT式リストに指定されている列名の別名。この列で、結果の行がソートされます。
column_name_aliasを指定する場合、その列が選択リストで指定されているかどうかにかかわらず、その列の別名を問合わせのFROM句で参照されているテーブルに定義されている列の名前と同じ名前にすることはできません。システムは、ユーザーが指定する列の別名よりも、基礎となる物理的な列の名前を優先して参照します。
適正でないcolumn_name_aliasを指定すると、システムはエラーを返します。
この現象を回避するには、クエリーの選択リスト内で、SORT列をそのcolumn_position値で指定します。列参照およびORDER BYを参照してください。
column_position
ソートする選択式リストで指定された列または式の位置。
指定する値は、1から選択リストで指定した列数まで(最大列数を含む)の正定数の整数リテラルでなければなりません。データベースでは、マクロとプロシージャのパラメータを式として扱い、列位置の指定としては扱わないので注意してください。
選択リストで指定されたcolumn_name_aliasが、FROM句で指定された基本テーブルの物理的な列と同じ名前であった場合、そのcolumn_name_aliasをソート値として指定することはできません。列位置の参照を選択リストの列または式の順序に指定できます。しかし、テーブル定義で指定された他の列と同じ名前のcolumn_name_aliasは使用できません。問合わせがうまく行かない場合にcolumn_positioncolumn_name_aliasを置き換えることは、良い方法ではないため推奨されません。ただし、特別な状況では、最後の手段としてこの方法を使用することも可能です。
選択リスト内で位置によって参照される列または式には、BLOBデータ型またはCLOBデータ型のいずれも使用できません。
これは、ANSI SQL:2011規格に対するTeradata拡張機能です。
ASC
結果が昇順でソートされます。
ソート フィールドが文字列の場合、システムは現在のセッションの照合順序の定義に従って、昇順で整列します。
デフォルトの順序はASCです。
DESC
結果が降順でソートされます。
ソート フィールドが文字列の場合、システムは現在のセッションの照合順序の定義に従って、降順でソートします。
NULLS FIRST
NULL結果が最初にリストされることを指定します。
NULLS LAST
NULL結果が最後にリストされることを指定します。