zoukankan      html  css  js  c++  java
  • T-SQL:毕业生出门需知系列(三)

    第3课 排序检索数据

    3.1 排序数据(ORDER BY)

      下面的 SQL 语句返回某个数据库表的单个列。观察其输出,并没有特定的顺序。

    SELECT prod_name
    FROM Products;

      【提示】关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有任何意义。

      为了明确检索的数据顺序,可用 ORDER BY 子句取一个或多个列的名字,据此对输出进行排序.

    SELECT prod_name
    FROM Products
    ORDER BY prod_name;
    --    分析:跟上一条语句不同的地方在于,只不过对 prod_name 列以字母顺序进行数据排列

    3.2 按多个列排序

      要按多个列排序,简单指定列名,列名之间用逗号分开

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

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

    3.3 按列位置排序(使用数字)

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

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY 2, 3;
    --    这里的输出与上面的查询相同。2 指 prod_price,3 指 prod_name

    3.4 指定排序方向(ASC,DESC)

      数据排序默认是升序(ASC)排列,可以指定 DESC 关键字对它进行降序排序。

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY prod_price DESC
    --  DESC 关键字只应用到直接位于其前面的列名。

      如果打算用多个列排序,该怎么办?

      下面的例子以降序排序产品(最贵的在最前面),再加上产品名:

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY prod_price DESC, prod_name
    --  分析:DESC 关键字只应用到直接位于其前面的列名。

      【注意】如果想在多个列上进行降序排序,必须对每一列指定 DESC 关键字

    续集:

      SQLServer:《SQL必知必会》一书的读书笔记(二)

      SQLServer:《SQL必知必会》一书的读书笔记(四)

     

  • 相关阅读:
    uva 11294 Wedding
    uvalive 4452 The Ministers’ Major Mess
    uvalive 3211 Now Or Later
    uvalive 3713 Astronauts
    uvalive 4288 Cat Vs. Dog
    uvalive 3276 The Great Wall Game
    uva 1411 Ants
    uva 11383 Golden Tiger Claw
    uva 11419 SAM I AM
    uvalive 3415 Guardian Of Decency
  • 原文地址:https://www.cnblogs.com/liqingwen/p/4648655.html
Copyright © 2011-2022 走看看