3

假设我有numbers带有字段numINT的表

参赛作品:

364
0
123
0
321
4215
12138

我想对它们进行 ASC 排序。问题是我希望将零留在底部。

我想要的差不多

SELECT num FROM number WHERE num != 0 ORDER BY num ASC
SELECT num FROM number WHERE num = 0

这有可能以某种方式在 1 个单一查询中完成吗?

我想要实现的是:

123
321
364
4215
12138
0
0

我不知道这是否可能这就是问的原因。谢谢你。

4

2 回答 2

5

在 order by 子句中添加此条件,

ORDER BY (num = 0) ASC, num ASC

或者您可以默认省略ASC

ORDER BY (num = 0), num

输出

╔═══════╗
║  NUM  ║
╠═══════╣
║   123 ║
║   321 ║
║   364 ║
║  4215 ║
║ 12138 ║
║     0 ║
║     0 ║
╚═══════╝
于 2013-04-09T13:54:32.350 回答
3
SELECT num FROM number ORDER BY IF(num=0,1,0),num;
于 2013-04-09T13:54:27.363 回答