取得データをソート
SELECT文でデータを取得する時に、ソートしてから取得する方法を確認します。書式は次の通りです。
SELECT カラム名 , ... FROM テーブル名 ORDER BY カラム名1 [ASC | DESC], カラム名2 [ASC | DESC], ...;
ORDER BY句の後にソートを行うカラム名を指定します。そして昇順でソートする場合には「ASC」、降順でソートする場合には「DESC」を指定します。省略した場合は昇順でソートが行われます。
具体的には次のようになります。
create table customer(id integer, name text, address text); select * from customer order by id desc;
「id」カラムの値を使い降順にソートしたデータを取得します。
またソートする対象のカラムは複数指定することができます。その場合はカンマ(,)で区切り続けて記述して下さい。複数のカラムを指定した場合には、まず最初のカラムでソートを行い、次に最初のカラムで同じ値だったものだけを対象に2番目のカラムでソートを行います。3つ以上指定した場合も同じように行います。
具体的には次のようになります。
create table customer(id integer, name text, address text); select * from customer order by id desc, address asc;
サンプル
では実際に試してみます。
次のようなデータが格納されたテーブルを対象にします。現時点ではソートは行っていないので登録された順に表示されます。
「old」カラムを昇順にソートしてデータを取得します。
今度は「old」カラムを降順にソートしてデータを取得します。
数値だけではなく文字列が格納されたカラムでもソートは可能です。「address」カラムを昇順にソートしてデータを取得します。
「address」カラムを昇順にソートした上でさらに「old」カラムを降順にソートしてデータを取得します。
この場合、まず「address」カラムの値でソートが行われ、そして「address」カラムが同じ値の行の集まり毎に「old」カラムの値でソートが行われています。