2011-05-04 48 views
4

如何創建一個sql查詢,它將所有不是0的升序排序,然後是0?在同一列上排序兩次的SQL結果

所以列有數據,如:

col 
---- 
2 
4 
0 
7 
0 
8 

...我想查詢返回:

col 
---- 
2 
4 
7 
8 
0 
0 

謝謝!

回答

8
Select ... 
From MyTable 
Order By Case When Col = 0 Then 1 Else 0 End Asc, Col Asc 
+0

完美,感謝您的幫助@Thomas! – Mike 2011-05-04 03:41:47

1

用途:

SELECT ... 
    FROM YOUR_TABLE t 
ORDER BY CASE 
      WHEN t.col = 0 THEN 999999 
      ELSE t.col 
     END 
+1

只要我們沒有大於999999的值,它就會工作.... – 2011-05-04 03:38:12

+0

@Nitin Midha:正確,但它是一個例子 – 2011-05-04 03:42:58