zoukankan      html  css  js  c++  java
  • 第四节:排序查询

    一、排序查询

      1、语法

    select 查询列表 
    from 表名
    【where 筛选条件】
    order by 排序列表 【asc | desc】;
    

        asc 升序,默认值,可以省略;desc 降序;

      2、特点

      (1)asc 升序,desc 降序,如果不写,默认是升序;
      (2)order by 子句中可以支持单个字段,多个字段,表达式,函数,别名
      (3)order by 子句一般是放在查询语句的最后面,但是 limit 子句除外

    二、案例

      1、按照单个字段排序

        要求:查询员工信息,要求工资从高到低排序

    SELECT 
      * 
    FROM
      employees 
    ORDER BY salary DESC ;
    

      2、添加筛选条件

        要求:查询部门编号大于等于90的员工信息,按照入职时间先后进行排序

    SELECT 
      * 
    FROM
      employees 
    WHERE department_id >= 90 
    ORDER BY hiredate ASC ;
    

      3、按表达式排序

        要求:按年薪的高低显示员工的信息和年薪

    SELECT 
      *,
      salary * 12 * (1 + IFNULL(commission_pct, 0)) AS 年薪 
    FROM
      employees 
    ORDER BY salary * 12 * (1 + IFNULL(commission_pct, 0)) DESC ;
    

      4、按照别名排序

        要求:按年薪的高低显示员工的信息和年薪

    SELECT 
      *,
      salary * 12 * (1 + IFNULL(commission_pct, 0)) AS 年薪 
    FROM
      employees 
    ORDER BY 年薪 DESC ;
    

      5、按函数排序

        要求:按姓名的长度显示员工的姓名和工资

    SELECT 
      LENGTH(last_name) 字节长度,
      last_name,
      salary 
    FROM
      employees 
    ORDER BY LENGTH(last_name) ;

          也可以根据别名排序:

    SELECT 
      LENGTH(last_name) 字节长度,
      last_name,
      salary 
    FROM
      employees 
    ORDER BY 字节长度 ;
    

      

      6、按多个字段排序

        要求:查询员工信息,要求先按照工资降序,再按照员工编号升序

    SELECT 
      * 
    FROM
      employees 
    ORDER BY salary DESC,
      employee_id ASC ;
    

    三、练习

      1、查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序

    SELECT 
      last_name,
      department_id,
      salary * 12 * (1+ IFNULL(commission_pct, 0)) 年薪 
    FROM
      employees 
    ORDER BY 年薪 DESC,
      last_name ASC ;
    

      

      2、选择工资不在8000到17000的员工的姓名和工资,按工资降序

    SELECT 
      last_name,
      salary 
    FROM
      employees 
    WHERE salary NOT BETWEEN 8000 
      AND 17000 
    ORDER BY salary DESC ;
    

      

      3、查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序

    SELECT 
      *,
      LENGTH(email) 
    FROM
      employees 
    WHERE email LIKE '%e%' 
    ORDER BY LENGTH(email) DESC,
      department_id ASC ;
    

      

  • 相关阅读:
    利用flashBack恢复误删除(delete)的表数据
    [原创] [YCM] YouCompleteMe安装完全指南
    关于dll的一点收获
    could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
    化不利为有利
    突破软件试用期的"土方法"
    网络求职的成功率一般2个月是发1000份简历,有8份面试,2份成功,一个是你不想去的,另一个可能是你相对满意的。
    一个简易的dota改键助手
    linux 版本控制服务-git
    django modelform模块
  • 原文地址:https://www.cnblogs.com/niujifei/p/14885422.html
Copyright © 2011-2022 走看看