2011-06-27 18 views
2

私はこのクエリを持っている:SQLiteの条件付き順序

select id,number,name 
    from objects 
order by case number when 0 then 1 else -1 end asc 

データベースは数字を持つオブジェクトのデータベースです。オブジェクトの番号が0よりも小さい場合。数値が0の場合を除いて昇順でソートしたい場合は降順にソートします。

上記のクエリは、デフォルトの並べ替え順序であるIDでソートされているようです。

ありがとうございます。

答えて

2
閉じる

、しかし、あなたにもnumberでソートするのを忘れ:

SELECT id,number,name 
    FROM objects 
ORDER BY CASE number WHEN 0 THEN 1 ELSE 0 END, number; 
+0

こんにちはアダム、それは私のために働いていない、それだけで数昇順で並べ替えます。 0の数字はまだ最初です。 – Francisc

+1

申し訳ありません。私はソート順を反転させました。私は正しい順序に編集しました。 – bernie