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


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

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

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

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

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,以后會不定期更新一些工作中遇到的問題的結局方案和平時學習和生活中心得體會。希望大家多多指教。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM