zoukankan      html  css  js  c++  java
  • 第3课 排序检索数据

    第3课 排序检索数据

    3.1 排序数据

    ORDER BY子句取一个或多个列的名字,据此对输出进行排序。

    SELECT prod_name
    FROM Products
    ORDER BY prod_name; 
    

    ORDER BY子句的位置
    在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条子句。如果它不是最后的子句,将会出现错误消息。

    3.2 按多个列排序

    要按多个列排序,简单指定列名,列名之间用逗号分开即可(就像选择多个列时那样)。

    下面的代码检索3个列,并按其中两个列对结果进行排序——首先按价格,然后按名称排序。

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY prod_price, prod_name; 
    

    对于上述例子中的输出,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。

    3.3 按列位置排序

    除了能用列名指出排序顺序外,ORDER BY还支持按相对列位置进行排序。

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY 2, 3;
    

    ORDER BY 2,3表示先按prod_price,再按prod_name进行排序。

    3.4 指定排序方向

    为了进行降序排序,必须指定DESC关键字。

    下面的例子以价格降序来排序产品(最贵的排在最前面):

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY prod_price DESC; 
    

    如果打算用多个列排序,该怎么办?下面的例子以降序排序产品(最贵的在最前面),再加上产品名:

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY prod_price DESC, prod_name;
    

    DESC关键字只应用到直接位于其前面的列名。在上例中,只对prod_price列指定DESC,对prod_name列不指定。

    警告:在多个列上降序排序
    如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。

    3.5 小结

    这一课学习了如何用SELECT语句的ORDER BY子句对检索出的数据进行排序。这个子句必须是SELECT语句中的最后一条子句。根据需要,可以利用它在一个或多个列上对数据进行排序。

  • 相关阅读:
    每天学习一个设计模式(十二):创建型之单例模式
    每天学习一个设计模式(十一):创建型之原型模式
    每天学习一个设计模式(十):创建型之工厂方法模式
    每天学习一个设计模式(九):创建型之建造者模式
    数据库
    操作系统
    计算机网络
    Java 基础知识
    Linux基本操作
    git 基本操作
  • 原文地址:https://www.cnblogs.com/zhangsonghui/p/12943037.html
Copyright © 2011-2022 走看看