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缺失右括号。尚不清楚是因为什么。

原文地址:https://www.cnblogs.com/anningkang/p/10655876.html

时间: 2024-10-29 04:36:55

order by中用子查询排序的相关文章

Sqlserver 使用CTE如何按子查询排序?

Sqlserver 使用CTE如何按子查询排序? 需求:查出最近有更改的客户信息(按最后更改时间排序,来自SystemLog表LogDateTime字段) 说明: Customer:客户信息表SystemLog:系统日志表,记录所有表信息的增,删,改 自己公司开发的行业软件,不仅自己公司有在用,其他公司也在用,本公司进行软件维护和提供升级服务由于之前的设计客户信息表并没有更改时间字段,而现在该系统已经在N个不同的数据库里运行导致不能随意更改数据库结构(虽然可以升级,但代价太大) 不能使用视图及存

高级子查询

1子查询是嵌套在查询中的另一个查询语句 2多列子查询(成对比较) 主查询与子查询返回的多个列进行比较 Where (department_id,manager_id) In Select department_id,manager_id 查询条件 3在from子句中使用子查询(from 子句) 4在order by 使用子查询 5相关子查询 相关子查询按照一行接一行的顺序执行,主查询的每一行都执行一次子查询 GET 从主查询中获取候选列 EXECUTE 子查询使用主查询的数据 USE 如果满足内

Oracle子查询(嵌套查询)

概念: 所谓子查询,即一个select语句中嵌套了另外的一个或者多个select语句 需求:查找和Smith同部门的所有员工的id和last_name 目标: 员工id,last_name from:  s_emp 条件: s_emp.dept_id = Smith所在部门的id? select id,last_name from s_emp where dept_id = ? 阶段目标: Smith所在部门的id 目标: dept_id from : s_emp 条件: last_name =

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

今日内容 表查询 单表查询: where group by 分组 having distinct 去重 order by 排序 limit 多表查询 子查询 连表查询 单表查询 前期表准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) u

mysql概要(四)order by,group 的特点,子查询

1.order by 默认按升序排列(asc/desc),多字段排序 order by 字段 排序方式,字段2 排序方式,..:在分组排序中,排序是对分组后的结局进行排序,而不是在组中进行排序. 2.limit 在语句最好,截取记录的条数.一般和order by 配合使用 limit[offset][N] offset: 偏移量   N:条数: 如limit(2,2),即从第三记录开始取两条记录.当一个参数时:limit 2,即从第一条记录开始取2条 3关于分组和聚合函数的一个问题,当分组时会从

Oracle基本语法&&函数&&子查询&&分页查询&&排序&&集合操作&&高级分组函数

一.  数据库 手工---文件管理---数据库 DB:Database 数据库. DBMS:管理数据库的软件.(oracle) 主流关系数据库: 1.      Oracle 2.      DB2 3.      SQL Server 基本没人使 4.      MySQL  基本没人用,免费 Linux 开源,可以发现漏洞补上 Windows服务器会有补丁,数据易泄漏 eclipse 日食 数据表(Table): 表的行(Row):记录 表的列(Column):字段 二.  关系型数据库 一

Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页

GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group by deptno; --根据部门分组,并统计 Select deptno, count(*) form emp group by deptno; select deptno, avg(sal) from emp group by deptno; --每个部门的平均工资 HAVING子句 用于指定

【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法

第二章 mysql 一.模糊查询 like 1. 字段 like '河北省%' %代表任何N个字符 2 字段 like '河北省____' _代表任意1个字符 二.IN 语法:SELECT 字段列1,字段2 ,…FROM 表名 WHERE 字段x IN ( 值1,值2,值3…) 三.排序 语法:select 字段1, 字段2, ... from 表名 where 条件 order by 字段 [asc|desc] asc :升序 desc :降序 默认是升序asc SELECT * FROM s

18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询

-- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前数据是哪个? select database(); -- 创建一个数据表 -- students表 create table students( id int unsigned primary key auto_increment not null, name varchar(20) default