order by用于對查詢結果按字段進行排序,可以是單字段排序,也可以是多字段排序。現在想用order by實現這樣的排序功能,對查詢出來的數據首先按condition A分成兩組,然后兩組數據分別使用不同的排序方法,其中一組按字段a, b進行倒排序,另一組按c,b進行倒排序。例如:要求對table_a中的數據進行查詢排序,排序方案是這樣要求的:
(1) ID>=20的記錄要排在ID<20的前面;
(2) ID >=20的記錄按字段a進行倒排序,按b進行倒排序;
(3) ID< 20的記錄按字段c進行倒排序,按b進行倒排序;
sql語句如下:
- select ?*? from ?table_a??
- order ? by ? case ? when ?ID?>=?20? then ?0? else ?1? end ,???
- ????????? case ? when ?ID?>=?20? then ?a? else ?c? end ? desc ,??
- ?????????b? desc ??
case when 可以使用數字和表字段名。使用數字的時候可以理解為桶號,桶號小的排在前面,桶號大的排在后面;使用字段的時候就是和普通order by語句一個用法。
?
轉自:http://blog.csdn.net/iamke1987/article/details/7431286
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
