mysql基础-进阶三【排序查询】

基础语句-进阶3【排序查询】
  • 语法

    • select 查询列表 from 表名 where 筛选条件 order by 排序列表
      ​
      执行顺序
      1. from子句
      2. where子句
      3. select子句
      4. order by子句
  • 特点

    • 排序列表可以是单个字段、多个字段、表达式、函数、列表、以及以上的组合

      • # 升序,通过asc,默认行为
        # 1, 将员工编号>120 的员工信息,并进行工资的升序排列
        SELECT * FROM employees WHERE employee_id > 120 ORDER BY salary ASC;
      • # 降序,通过desc 
        # 2, 将员工编号>120 的员工信息,并进行工资的降序排列
        SELECT * FROM employees WHERE employee_id > 120 ORDER BY salary desc;
         
    • 按表达式排序

      • #1, 对有奖金的员工,按年薪降序排列
        SELECT *, (salary*12*(1+commission_pct)) AS 年薪
        FROM employees WHERE commission_pct IS NOT NULL ORDER BY (salary*12*(1+commission_pct)) DESC;
        ​
        ​
        #2, 上面案例优化
        SELECT *, (salary*12*(1+IFNULL(commission_pct,0))) AS annual_salary
        FROM employees WHERE commission_pct IS NOT NULL ORDER BY annual_salary DESC;
    • 按函数的结果排序

      • #1, 按姓名的字数长度进行升序
        ​
        #案例3:按姓名的字数长度升序排列
        SELECT LENGTH(last_name) AS len,last_name FROM employees ORDER BY len ASC;
 
posted @ 2020-11-04 16:14  名叫蛐蛐的喵  阅读(329)  评论(0编辑  收藏  举报