[SQLite] ORDER BY の値に複数の値を指定する方法

自由が丘で働くWeb屋のブログ

[SQLite] ORDER BY の値に複数の値を指定する方法

[SQLite] ORDER BY の値に複数の値を指定する方法
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
 
カテゴリー:Webシステム開発
タグ:,
2013年10月16日 23時07分
 

関連記事

 

コメントを書く

(C) 自由が丘で働くWeb屋のブログ