四:排序查询(order by)

#进阶三:排序查询
/*
语法
    select 查询列表
    from 表名
  【where 筛选条件】
    order by 排序列表
执行顺序
  (1)from子句
  (2)where子句
  (3)select子句
  (4)order by子句
举例:
    select `last_name`,`salary`
    from `employees`
    where `salary`>2000
    order by `salary`;
特点:
1、排序列表可以是单个字段、多个字段、表达式、函数、列数、以及以上的组合
2、升序,通过 asc  ,默认升序
   降序,通过 desc 
*/
 
#一、按某个字段排序
#案例1:将员工编号>120的员工信息进行工资的降序
        SELECT *
        FROM `employees`
        WHERE `employee_id`>120
        ORDER BY `salary` DESC;
#案例2:将员工编号>120的员工信息进行工资的升序
       SELECT *
       FROM `employees`
       WHERE `employee_id`>120
      ORDER BY `salary`;
#二、按表达式排序
#案例1:对有奖金的员工,按年薪降序
       SELECT *,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪
       FROM `employees`
       WHERE `commission_pct` IS NOT NULL
       ORDER BY `salary`*12*(1+IFNULL(`commission_pct`,0)) DESC;
#三、按别名排序
#案例1:对有奖金的员工,按年薪降序
       SELECT *,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪
       FROM `employees`
      #WHERE `commission_pct` IS NOT NULL
      ORDER BY 年薪 DESC;
#四、按函数的结果排序
#实例1:按姓名的字数长度进行升序
      SELECT `last_name`
      FROM `employees`
      ORDER BY LENGTH(`last_name`);
#五、按多个字段排序
#案例1:查询员工的姓名、工资、部门编号,先按工资升序,再按部门编号降序
      SELECT `last_name`,`salary`,`department_id`
      FROM `employees`
      ORDER BY `salary`,`department_id` DESC;
#六、按列数排序(字母从a-z)
     SELECT *
     FROM `employees`
    ORDER BY 2;   
posted @ 2021-07-26 10:27  zhang-X  阅读(304)  评论(0)    收藏  举报