zoukankan      html  css  js  c++  java
  • ORDER BY一个较高级的用法

    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语句如下:

    1. select * from table_a  
    2. order by case when ID >= 20 then 0 else 1 end,   
    3.          case when ID >= 20 then a else c end desc,  
    4.          b desc  

    case when 可以使用数字和表字段名。使用数字的时候可以理解为桶号,桶号小的排在前面,桶号大的排在后面;使用字段的时候就是和普通order by语句一个用法。

    转自:http://blog.csdn.net/iamke1987/article/details/7431286

  • 相关阅读:
    黑马程序员_java基础笔记(13)...类加载器和代理
    nyoj-411-Friends number
    nyoj-38-布线问题
    nyoj-233-Sort it
    nyoj-115-城市平乱
    nyoj-608-畅通工程
    nyoj-36-最长公共子序列
    nyoj-150-Train Problem I
    nyoj-494-Dancing With the Googlers
    nyoj-214-单调递增子序列(二)
  • 原文地址:https://www.cnblogs.com/icycore/p/2769310.html
Copyright © 2011-2022 走看看