2

次の例を検討してください。

+---------+------------+
| value   | name       |
+---------+------------+
|      42 | abresas    |
|       0 | dionyziz   |
|       6 | dionyziz2  |
|       0 | izual      |
|       8 | kokos      |
|      37 | kostis90gr |
|       0 | test       |
|      35 | usertest   |
+---------+------------+

これを値の昇順で並べ替えたいのですが、値が0のすべての名前を一番下に表示したいです。したがって、ソート順は次のようになります: 6,8,35,37,42,0,0,0

これがSQLで可能かどうかはわかりませんか?

4

3 に答える 3

7

もちろん。IF 関数を使用します。

ORDER BY IF(value=0,1,0), value
于 2012-07-09T15:53:40.247 に答える
4

はい、order by 句を調整するだけです。

order by (case when value = 0 then 999999 else value end)

最大値があると仮定して、それを行う1つの方法です。別のより一般的な方法は次のとおりです。

order by (case when value = 0 then 1 else 0 end), value
于 2012-07-09T15:54:33.557 に答える
-1

UNION キーワードを使用して、次のように 2 つの異なるクエリの結果を組み合わせることができます。

(select * from tableName where value>0 order by value) 
union 
(select * from tableName where value=0)
于 2012-07-09T16:00:16.967 に答える