sql 按指定規則排序,例如 按 1,3,2排序 而不是1,2,3

    咱們都知道 sql語句中的排序有desc(降序)、asc(升序),這兩個都是按順序排列的,最近有一個需求是不按順序排序了 ,抽出個別的排在前面,而且這種需求是應對的問題中的數據是比較少的,並且沒有規律可循,用程序處理的話雖然能實現,可是處理起來會複雜不少,下面咱們就經過對order by 後面的排序語句進行處理達到咱們想要的目的sql

    在Company表中存儲有id,Name(公司名稱)等字段,其中id爲自增 主鍵 首先咱們按順序查出前三條記錄(默認升序,其中order by id ASC 可省略)學習

SELECT TOP 3 id,Name FROM dbo.Company ORDER BY Id ASC 

下面咱們將第二條數據排在第一位spa

SELECT TOP 3 id,Name FROM dbo.Company order by (case Id when 2 then 0 else Id end) ASC 
--或者
SELECT TOP 3 id,Name FROM dbo.Company order by (case Id when 2 then 0 else 1 end),Id asc

這樣就實現了想要的結果,這裏只是給你們提供一個此類問題的解決思路,你們有什麼好的辦法歡迎交流。個人qq是1066494108,之後會不按期更新一些工做中遇到的問題的結局方案和平時學習和生活中心得體會。但願你們多多指教。。。code

相關文章
相關標籤/搜索