order by中用子查询排序

Posted anningkang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了order by中用子查询排序相关的知识,希望对你有一定的参考价值。

今天有个需求是对一个列表排序,但是排序字段是在另一个表中,不想用关联查询,就想能否直接在order by中用子查询,后来找到一个还挺好使。记录如下。

排序语句如下:

select *
  from mainpage_report_sum s
 where s.year_month = 2019-02
   and s.orgid in (select *
                     from (select id
                             from SYS_ORGANIZATION_REPORT o
                            order by o.org_order1 asc));

个人感觉像是先排好序,然后放在in的子查询中,然后就可以按照in中的顺序排序了。但是是否如此还有待考证。也没发现in有这个功能的。

在in的()中如果不套一层select * from会报错  ORA-0007缺失右括号。尚不清楚是因为什么。

以上是关于order by中用子查询排序的主要内容,如果未能解决你的问题,请参考以下文章

单表查询: where group by 分组 having distinct 去重 order by 排序 limit 多表查询 子查询 连表查询

UNION ALL、UNION与ORDER BY

子查询中不允许用order by子句,那么应该怎么办?

sqlserver 创建视图失败,原因:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效

mysql有意思的order by 子查询

为啥 ORDER BY 不对这个查询进行排序?