SQLORDER BYの句は、SQL文が1 つ以上の列の値で行をソートした結果セットを返すことを指定します。ソート条件は結果セットに含まれている必要はありません ( 、、、およびには制限が適用されます) 。ソート条件には、列名、ユーザー定義関数、算術演算、または式などの式を使用できます。式が評価され、その結果 (列に格納されている値または関数呼び出しの結果) がソートに使用されます。
SELECTSELECT DISTINCTGROUP BYUNION [DISTINCT]EXCEPT [DISTINCT]INTERSECT [DISTINCT]CASE
ORDER BYは、結果セットの行をソートする唯一の方法です。この句がない場合、リレーショナルデータベース システムは行を任意の順序で返す可能性があります。順序付けが必要な場合は、アプリケーションによって送信されるステートメントORDER BYで を指定する必要があります。一部のデータベース システムでは、サブクエリまたはビュー定義で 句の指定が許可されていますが、そこに句を指定しても最終的な結果セットの順序には影響しません。ただし、結果オフセット句または fetch first 句と組み合わせると意味を持ちます。ビューは論理リレーショナル テーブルであり、リレーショナル モデルではテーブルが行のセットであることが必須であり、ソート順序はまったくありません。唯一の例外は、ネストされたサブクエリを通じてソート基準を伝播できる のような構造( SQL:2003では標準化されていません) です。
SELECTORDER BYORDER BY ORDER OF ...
SQL 標準のコア機能では、Nullのデフォルトのソート順序は明示的に定義されていません。SQL :2003拡張 T611、「基本的な OLAP 操作」では、リストのNULLS FIRSTor句を使用して、それぞれすべてのデータ値の前または後に null をソートできます。ただし、すべての DBMS ベンダーがこの機能を備えているわけではありません。この機能を実装していないベンダーは、DBMS での Null ソートに異なる処理を指定する場合があります。[1]NULLS LASTORDER BY
構造はORDER BY ... DESC降順で並べられ、そうでない場合は昇順が使用されます。(後者は を使用して明示的に指定できますASC。)
例
SELECT * FROM Employees ORDER BY LastName , FirstName
これは LastName 列で並べ替えられ、LastName が一致する場合は FirstName 列で並べ替えられます。
参考文献
- ^ 「SQLite と他のデータベース エンジンでの NULL 処理」 。2009年1 月 25 日閲覧。
