すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ORDER BY 句

最終更新日:May 24, 2024

このトピックでは、ORDER BY句とこの句の使用方法について説明します。

オプションのORDERBY句の構文は次のとおりです。

ORDER BY式 [ASC | DESC ] [, ...]

expressionには、SELECTリストの出力列の名前または序数を指定できます。 また、入力列の値から形成される任意の式にすることもできます。

ORDER BY句を使用すると、指定した式に基づいて結果行をソートできます。 2つの行が左端の式に基づいて等しい場合、それらは次の式に基づいて比較されます。 指定されたすべての式に基づいて等しい場合、実装に依存する順序で返されます。

序数は、結果列の序数 (左から右) の位置を指します。 この機能は、一意の名前を持たない列を使用してソートを定義します。 AS句を使用して結果列に名前を割り当てることができるため、これは必要ありません。

ORDERBY句で、SELECT結果リストに表示されない列を含む式を使用することもできます。 したがって、次の文は有効です。

SELECT enameからemp注文によってempno;

UNIONINTERSECT、またはMINUS句の結果に適用されるORDER BY句は、式ではなく出力列名または数のみを指定できます。 これがその特徴の限界である。

ORDER BY式が出力列名と入力列名の両方に一致する単純な名前である場合、ORDER BYはその単純な名前を出力列名として解釈します。 これは、同じ状況でGROUP by句によって行われる選択の反対です。 この不整合は、SQL 標準と互換性を確保するためのものです。

ORDER BY句の式の後にASC (昇順) またはDESC (降順) キーワードを追加できます。 ASCまたはDESCを指定しない場合、デフォルトでASCが使用されます。

null 値は、他の値よりも高い順に並べ替えられます。 つまり、null 値は昇順の最後にあり、降順の最初にあります。

文字列データは、特定のロケールの照合順序を使用してソートされます。 照合順序は、データベースクラスターの初期化時に作成されます。

次の2つの例は、2番目の列 (dname) の内容を使用して結果をソートする方法を示しています。

SELECT * からdept ORDER BY dname;

 deptno | dname | loc
------- ------------ ------------------
     10 | ACCOUNTING | NEW YORK
     40 | OPERATIONS | BOSTON
     20 | RESEARCH   | DALLAS
     30 | 贩売 | シカゴ
(4行)

SELECT * からdept注文BY 2;

 deptno | dname | loc
------- ------------ ------------------
     10 | ACCOUNTING | NEW YORK
     40 | OPERATIONS | BOSTON
     20 | RESEARCH   | DALLAS
     30 | 贩売 | シカゴ
(4行)