美文网首页
三、排序检索数据

三、排序检索数据

作者: 曾经像素有点低 | 来源:发表于2023-02-12 12:17 被阅读0次
    工程师加油💪🏻.png
    组合WHERE子句,使用NOT 和 IN 操作符
    如何使用SELECT 语句的ORDER BY子句

    1.1排序数据

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

    SELECT name 
    FROM staff 
    ORDER BY name;
    
    • 1.作用:指示DBMS软件对name列以字母顺序进行排序数据。
    • 2.注意:在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条句子。如果它不是最后的句子,将会出错。
    • 3.提示:可以使用非选择列进行排序
      通常,ORDER BY 子句使用的列将是为了显示而选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。

    1.2按多个列排序

    通常有按照身高排序、按照成绩排序等。但有时候需要按照多个列排序。比如:按照年龄排序,年龄相同的,再按照身高排序:
    要按照多个列排序,只须指定这些列名,列名之间用逗号隔开。

    SELECT   id,  name,   age,  height 
    FROM  people
    ORDER  BY  age, height;
    

    tips: 排序的优先级跟设置列名的顺序一致:
    只有在 age存在多个相同的值的时候,才会按照height排序。换句话说:如果age列中每一个值都是唯一的,则不会按照height排序。

    1.3按列位置排序

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

    SELECT  id, name, age, height
    FROM people
    ORDER BY 3, 4;
    

    SELECT后,第一个位置是id,第二个是name,然后第3个第4个是,age,height。所以ORDER BY 3, 4;就是用第3和第4个位置上的列名排序。效果等于ORDER BY age, height;

    tips: 按列位置排序是,用来进行排序的列,必须在SELECT 清单中。

    1.4指定排序方向

    升序:默认或者ASC或者ASCENDING
    降序:DESC或者DESCENDING
    从商品表goods中筛选出商品id、价格price、商品名name,并按照price降序排列。(越贵的越放前边)

    SELECT id, price, name 
    FROM goods
    ORDER BY price DESC;
    

    先:按照price降序排列,
    然后:相同price的商品,按照name升序排列。

    SELECT id, price, name 
    FROM goods
    ORDER BY price DESC, name;
    

    先:按照price降序排列,
    然后:相同price的商品,按照name降序排列。

    SELECT id, price, name 
    FROM goods
    ORDER BY price DESC, name DESC;
    

    DESCDESCENDING的缩写,该关键字只应用到直接位于其前面的列名。

    相关文章

      网友评论

          本文标题:三、排序检索数据

          本文链接:https://www.haomeiwen.com/subject/ecldkdtx.html