zoukankan      html  css  js  c++  java
  • MySQL数据库:第四章:排序查询

    作者:java_wxid
    回退至Mysql数据库理论与实战
    #进阶3:排序查询
    语法:
    select 查询列表——————③
    from 表名——————①
    where 条件——————②
    order by 排序列表 asc|desc;——————④
    特点:
    1、
    asc代表的是升序。升序是默认行为
    desc代表的是降序。
    2、排序列表支持单个字段、表达式、函数、别名,也支持以上的组合
    3、order by子句一般放在查询语句的最后!

    #1、通过单个字段进行简单的排序
    #案例;按工资降序
    SELECT * FROM employees ORDER BY salary DESC;
    #2、通过表达式进行排序
    #案例:查询员工编号>110的姓名、编号、年薪,并且按年薪升序
    SELECT last_name,employee_id,salary*12*(1+IFNULL(commission_pct,0))
    FROM employees
    WHERE employee_id>110
    ORDER BY salary*12*(1+IFNULL(commission_pct,0));
    #3、通过别名进行排序
    #案例:查询员工编号>110的姓名、编号、年薪,并且按年薪降序
    SELECT last_name,employee_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪
    FROM employees
    WHERE employee_id>110
    ORDER BY 年薪 DESC;
    #4、通过函数的结果进行排序
    #案例:按姓名的长度进行升序
    SELECT LENGTH(last_name) len,last_name
    FROM employees
    ORDER BY len;
    #5、支持按多个字段或多个表达式排序
    #案例:先按姓名的长度进行升序,然后再按姓名的字符进行降序
    SELECT LENGTH(last_name) len,last_name
    FROM employees
    ORDER BY len,last_name DESC;
    #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 *
    FROM employees
    WHERE email LIKE '%e%'
    ORDER BY LENGTH(email) DESC,department_id ASC;
    
  • 相关阅读:
    【WPF/WAF】使用System.Windows.Interactivity交互事件
    【Linux/CentOS】Boolean ftp_home_dir is not defined
    【笔记】使用Token做验证
    【笔记】什么是跨域请求/访问?
    MongoDB优化与一些需要注意的细节
    MongoDB中聚合工具Aggregate等的介绍与使用
    MongoDB中MapReduce介绍与使用
    Centos下MongoDB的安装与配置
    PHP使用header方式实现文件下载
    关于redis中SDS简单动态字符串
  • 原文地址:https://www.cnblogs.com/javawxid/p/12812125.html
Copyright © 2011-2022 走看看