ORDER BY句 【ORDER BY clause】
概要
ORDER BY句(ORDER BY clause)とは、リレーショナルデータベースの操作や問い合わせに用いるSQLで、指定した列の値の大小や前後に基づいて抽出した行を並べ替えるもの。SELECT文の中で使用する。SELECT文のWHERE句より後に「ORDER BY 列名1 順序, 列名2 順序…」という書式で指定することができる。列名と順序はカンマ区切りで複数指定することができる。順序は「ASC」または「DSEC」のいずれかを指定し、「ASC」は値の小さい順(昇順)に、「DESC」は大きい順(降順)に並べ替える。省略時は「ASC」とみなされる。
複数の列名を指定した場合、先頭の列の値で整列し、その値が同じ行について2番目の列の値で整列し、その値が同じ行について3番目の列の値で整列し…という手順を繰り返す。順序の指定は列ごとに独立に行うことができる。
値の並び順は、数値型の場合は値の大小で決定されるが、日付型や時刻型の場合は時系列で過去側が小さな値、未来側が大きな値とみなされる。文字列型の場合の順序はシステムによって異なっており、文字コードの番号順(Oracle Databaseなど)か辞書順(SQL Serverなど)となる。
辞書順のシステムでも、ひらがなとカタカナの前後関係など非アルファベット文字の処理はシステムごとに微妙に異なっており、漢字や記号文字は文字コード順となることが多い。関数などを指定してコード順あるは辞書順を明示的に指定することができる場合もある(OracleのNLSSORT関数など)。
(2022.12.1更新)