SQL ORDER BY


SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL 関数
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL 別名
SQL 結合
SQL 外部結合
SQL SUBQUERY
SQL UNION
SQL UNION ALL
SQL INTERSECT
SQL MINUS
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM


サイトのご案内

  SQL > SQL コマンド > Order By

今まで、 SELECT 及び WHERE のコマンドを二つ使って、テーブルからデータを選ぶことを勉強してきたが、それらのデータをどのように並べるのか、まだ触れていません。そこがとても重要なところ。実は、選ばれたデータをシステム的に表示する場合がが多いからです。昇順 (ascending) 又は降順(descending)の並び方があります。ここで、 ORDER BY コマンドを使えばいいです。

ORDER BY のプログラミングは次のようになります。

SELECT "フィールド名"
FROM "テーブル名"
[WHERE "条件"]
ORDER BY "フィールド名" [ASC, DESC]

[] は WHERE 句が必ずしも必要とは限りないことを意味します。しかし、 WHERE 区がある場合、 ORDER BY 句の前に来ます。 ASC は結果が昇順に並び、 DESC はそれが降順に並ぶことを表します。その両者とも書かれていない場合、 ASC を使うことになります。

異なるフィールドを幾つか作って並べることができます。ここで、 ORDER BY 式のプログラミングは次のようになります(フィールドが二つある場合)。

ORDER BY "フィールド一" [ASC, DESC], "フィールド二" [ASC, DESC]

仮に、この二つのフィールドの昇順並びにする場合、この式からできた結果が "フィールド一" の昇順に並びます。"フィールド一" の幾つかのデータ值が同じ場合は、その幾つかのデータが"フィールド二" により降順に並びます。

例えば、Sales フィールドの降順により、 Store_Information テーブルのデータを表す場合、

Store_Information テーブル
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
San Francisco $300 Jan-08-1999
Boston $700 Jan-08-1999

を入力すると、

SELECT store_name, Sales, Date
FROM Store_Information
ORDER BY Sales DESC


の結果ができます。

store_name Sales Date
Los Angeles $1500 Jan-05-1999
Boston $700 Jan-08-1999
San Francisco $300 Jan-08-1999
San Diego $250 Jan-07-1999

上述の例は、フィールド名で並び順の拠りどころを指定することができます。フィールド名のほかに、フィールドの並び順 (SQL 文の並び順)を使ってもよろしい。 SELECT の後に来る第一フィールドは 1、第二フィールドは2、そのように類推します。上述の例の中で、次の SQL 文を使う場合でも、全く同じ結果が出ます。

SELECT store_name, Sales, Date
FROM Store_Information
ORDER BY 2 DESC

SQL 関数 >>