美文网首页
SQL笔记:根据条件排序查询结果

SQL笔记:根据条件排序查询结果

作者: 深海同志草田苇 | 来源:发表于2016-11-15 16:07 被阅读0次

1 问题

对如下的结果集,要根据某些条件逻辑来排序。例如,若JOB是“SALESMAN”,则根据COMM排序;否则,根据SAL排序。

ENAME SAL JOB COMM
TURNER 1500 SALESMAN 300
ALLEN 1500 CLERK 500
... ... ... ...

2 解决方案

解决方案有两种。

2.1 方案一

order by字句中使用case表达式:

select ename,sal,job,comm from emp
order by case when job='SALESMAN' then comm else sal end;
select ename,sal,job,comm from emp
order by case when job='SALESMAN' then comm else sal end;

2.2 方案二

使用case表达式来动态改变待排序的列:

select ename,sal,job,comm
    case when job='SALESMAN' then comm else sal end as orderd
  from emp
order by ordered;

相关文章

  • SQL笔记:根据条件排序查询结果

    1 问题 对如下的结果集,要根据某些条件逻辑来排序。例如,若JOB是“SALESMAN”,则根据COMM排序;否则...

  • 2021-01-16 - mysql优化

    分页优化 表结构如下 根据主键的查询排序 sql查询 会用到索引吗? 非主键的排序分页查询 sql查询 会用到索引...

  • mybatis动态order by 排序问题 2021-09-

    1、问题 sql查询需要根据条件动态修改排序字段以及升降序;刚开始尝试在sql中直接使用choose when进行...

  • MySQL ORDER BY 排序 IF 及 IN

    SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部通过的方法就是IN语句(也可以...

  • 单表的 CURD 操作(第四讲)

    动态 SQL 动态 SQL ,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件进行查询。提...

  • 数据库DQL

    基础查询 指定字段查询 指定字段组合不重复记录 条件查询 where后面可以接的条件 举例 结果集排序 多字段排序...

  • MySQL查询

    SQL查询分类 嵌套查询(子查询) 定义:把内层的查询结果作为外层的查询条件 多表查询 1.不加where条件(笛...

  • Java 问题记录

    4.5 4.5.1 MyBatis SQL 根据 date 查询预约设置,查询结果为 0: 4.5.2 根据 da...

  • 性能调优之SQL优化

    性能调优之SQL优化如何加快查询速度?1、升级硬件2、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的...

  • day37-mysql

    1、DDL 指定字段查询 指定字段组合不重复记录 条件查询 where后可接的条件 举例 结果集排序 多字段排序 ...

网友评论

      本文标题:SQL笔记:根据条件排序查询结果

      本文链接:https://www.haomeiwen.com/subject/vtapyttx.html