mysql查询后递减排序_第4篇 MySQL -排序查询

排序查询

它的语法格式

SELECT <列名1>,<列名2>,...<列明N> FROM <表名> WHERE <筛选条件> ORDER BY <列名|表达式> <ASC/DSC>

其中

  • ASC表示升序排列,DSC表示降序排列,若没有指定ASC或DSC默认是升序排列。
  • ORDER BY子句支持多个表达式、字段,或它们的别名多重排序。

按列明排序

示例1:我需要按入职日期查询降序排列的形式查询人员数据。

SELECT
    emp_no '工号',
    first_name '名字',
    gender '性别',
    hire_date '入职日期'
FROM employees
ORDER BY hire_date DESC;

输出效果

e779a61d11563ffb32ab4dfaa393841f.png

示例2:

查询工号位于20000到20050之间的人员信息,并且先按工号升序排列,其次按入职日期降序排列。

SELECT
    emp_no '工号',
    first_name '名字',
    gender '性别',
    hire_date '入职日期'
FROM employees
WHERE
    emp_no >20000 AND emp_no <20050
ORDER BY emp_no ASC,hire_date DESC;

按表达式排序

例如:扩充上面的示例,查找工号位于20000到20050之间的人员信息,并且按年薪降序排列

SELECT
    emp_no '工号',
    from_date '入职日期',
    salary '月薪',
    salary*(1+0.25)*12  '年薪'
FROM salaries
WHERE
    emp_no >20000 AND emp_no <20050
ORDER BY salary*(1+0.25)*12 DESC;

值得一提的是ORDER BY 子句支持表达式、字段名的别名,因此上面查询可以简化为

SELECT
    emp_no '工号',
    from_date '入职日期',
    salary '月薪',
    salary*(1+0.25)*12  '年薪'
FROM salaries
WHERE
    emp_no >20000 AND emp_no <20050
ORDER BY '年薪' DESC;

输出效果

ecf992c39311cd69600c3e6572ac8b3e.png

下一篇待续....

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值