今天有个需求是对一个列表排序,但是排序字段是在另一个表中,不想用关联查询,就想能否直接在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缺失右括号。尚不清楚是因为什么。