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 ;
    

      

  • 相关阅读:
    php Date()函数输出中文年月日时分秒
    jQuery动态添加删除与添加表行代码
    sql随机查询数据语句(NewID(),Rnd,Rand(),random())
    asp.net 逻辑操作符与(&&),或(||),非(!)
    php static 变量的例子
    asp.net C# int 类型在32/64位环境下取值范围无变化
    js保留小数点后N位的方法介绍
    [Java] LinkedHashMap 源码简要分析
    [Java] HashMap 源码简要分析
    [Java] Hashtable 源码简要分析
  • 原文地址:https://www.cnblogs.com/niujifei/p/14885422.html
Copyright © 2011-2022 走看看