我們都知道 sql語句中的排序有desc(降序)、asc(升序),這兩個都是按順序排列的,最近有一個需求是不按順序排序了 ,抽出個別的排在前面,並且這種需求是應對的問題中的數據是比較少的,而且沒有規律可循,用程式處理的話雖然能實現,但是處理起來會複雜很多,下麵我們就通過對order by 後面的排序 ...
我們都知道 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,以後會不定期更新一些工作中遇到的問題的結局方案和平時學習和生活中心得體會。希望大家多多指教。。。