SQL案例按顺序排列

时间:2014-05-09 10:56:44

标签: sql sql-order-by case

我试图按年升序/降序排序,但是当年份为0时我想要被视为最新的。

例如:

 2013
 2014
 0

 ORDER BY YEAR DESC should be

 0
 2014
 2013

经过一些阅读后,我认为这应该有效,但事实并非如此:

 ORDER BY CASE WHEN YEAR = 0 THEN 9999, YEAR ASC

3 个答案:

答案 0 :(得分:2)

请尝试:

select  * 
from TableName
order by case YEAR when 0 then 9999 else YEAR end desc

SQL Fiddle Demo

答案 1 :(得分:0)

试试这个:

SELECT * 
FROM TableName
ORDER BY CASE WHEN YEAR = 0 THEN 0 ELSE 1 END, YEAR ASC

结果:

YEAR
0
2013
2014

SQL Fiddle中的示例。

答案 2 :(得分:0)

请试试这个

  

SELECT *   FROM TableName   按顺序排列(年份= 0,9999,年份)DESC