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