使用MySQL对多个范围内的数字进行排序

时间:2014-09-29 11:21:29

标签: mysql asp.net sorting

我正在开发一个教育网站,需要按数字范围进行排序。我需要一些关于如何将数据排序到下面列出的范围的帮助。 581是最高的,604是最低的。它从604到582开始,然后从1开始直到581。

(Highest) 581 580 579.   .   . 3     2   1   582     .   .   .   602     603     604    (Lowest)

1 个答案:

答案 0 :(得分:1)

这是一个想法......

SELECT * FROM ints;
+---+
| i |
+---+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
+---+

SELECT i,CASE WHEN i < 5 THEN 1000-i ELSE i END x FROM ints ORDER BY x;
+---+------+
| i | x    |
+---+------+
| 5 |    5 |
| 6 |    6 |
| 7 |    7 |
| 8 |    8 |
| 9 |    9 |
| 4 |  996 |
| 3 |  997 |
| 2 |  998 |
| 1 |  999 |
| 0 | 1000 |
+---+------+

你也可以把它写成......

SELECT i FROM ints ORDER BY CASE WHEN i < 5 THEN 1000-i ELSE i END;