SQLiteの『ORDER BY』句に複数の条件を指定する方法。
詳細は以下から。
テーブル名『hoge』のカラム『moge』と『fuga』でソートしたい場合、下記の様に記述します。
SELECT * FROM hoge ORDER BY moge, fuga
上記記述の場合、『moge』でソートした後、『fuga』でソートされます。
予約日時管理などで年月日と時間を別に管理している様な場合は、年月日カラムを先に記述し、後に時間カラムを記述すると上手く取得できます。
ASCやDESCの指定も可能です。
SELECT * FROM hoge ORDER BY moge ASC, fuga DESC
なお、SQLiteではカラムの型をIntegerに指定していてもソートが文字扱いになる場合があります。
(例:『1,5,10』という3つの数値をASC指定でソートすると『1,10,5』になってしまう)
その場合は対象のカラムを『abs()』で括ると上手くソートできます。
SELECT * FROM hoge ORDER BY abs(moge) ASC, fuga DESC
コメント