`

关于子查询中不能使用order by 的理解

阅读更多
select * from (select * from emp e where e.sal < 1000 order by e.empno) t order by t.sal desc;

这条SQL的子查询里面  包含了子查询 就可以执行
而下面这条SQL
引用
select * from emp where dept in
   (select dept from valid_deps
    where dept_head='sally'
   order by dept);

在执行的时候则会报

具体原因:
在8i以前,子查询中不能包含Order By子句。

从8i开始,子查询可以有Order By,但必须是有top-n的这种子查询时才能用。

所谓的top-N查询就是:
TOP-N一般是指最大的n条记录或着是最小的n条记录。
如:
select rownum , t.col1, t.col2, ... from
( select col1, col2, ... from tab
  order by col1 ) t
where rownum <= n;

参考文章:http://blog.csdn.net/lee576/article/details/2685647

分享到:
评论

相关推荐

    mysql子查询的用法

    MySQL子查询是数据库...正确理解和运用子查询能帮助我们编写出更加高效和灵活的SQL语句,解决复杂的数据库操作问题。在实际工作中,应根据具体需求选择合适的子查询类型,并注意性能优化,以实现最佳的数据处理效果。

    数据库实验报告 SQL查询 ,子查询组合

    - **简单查询**:包括选择(SELECT)、投影(投影特定列)、排序(ORDER BY)、分组(GROUP BY)和过滤(WHERE子句),以及使用LIKE进行模糊匹配查询。 - **连接查询**:涉及多个表的数据合并,包括等值连接(JOIN...

    MS_SQL server 多表查询 子查询小总结

    子查询的 `SELECT` 查询总是使用圆括号括起来,并且不能包含 `COMPUTE` 或 `FOR BROWSE` 子句。如果同时指定了 `TOP` 子句,则只能包含 `ORDER BY` 子句。 #### 五、子查询的应用 子查询可以嵌套在外部 `SELECT`、`...

    Oracle基础使用子查询PPT学习教案.pptx

    首先,子查询并不具有特殊的语法结构,它只是SQL查询语句中的一个组成部分,可以出现在SELECT、FROM、WHERE、GROUP BY、HAVING和ORDER BY等子句中。子查询的基本语法形式包括在主查询的各个部分插入一个或多个子查询...

    oracle子查询教程(ppt )

    同时,子查询中不应包含`ORDER BY`子句,因为这会影响结果的顺序,而子查询的结果通常是无序的。 在子查询中使用分组函数,如`MIN`, `MAX`, `SUM`, `AVG`等,可以帮助我们找出满足特定条件的最小值、最大值等。例如...

    SQL:第六章_子查询.ppt

    2. 子查询的结果不应包含 ORDER BY 子句,因为子查询结果通常不会保留排序。 3. 单行子查询应配合单行函数,多行子查询则与多行函数一起使用。 在涉及 GROUP BY 和聚合函数(如 MIN, MAX, SUM, COUNT)时,子查询...

    MySQL数据库:嵌套子查询一.pptx

    - 在子查询中不允许使用ORDER BY子句,ORDER BY应该用于外部查询,对最终结果进行排序。 3. **嵌套子查询的执行顺序**: - 子查询先于外部查询执行。子查询的结果被外部查询使用,作为筛选条件,从而决定外部查询...

    数据库设计(包括select语句、子查询、语句嵌套)

    这里,内部的子查询 `(SELECT MovieID FROM Movies ORDER BY BoxOffice DESC LIMIT 1)` 找到了票房最高的电影ID,外部查询则找到了该电影的导演。 语句嵌套则是将多个查询语句组合在一起,以实现更复杂的逻辑。例如...

    MySQL多表查询和子查询

    - **子查询:** 使用子查询找到部门30中员工的薪金范围。 **SQL 示例:** ```sql SELECT last_name, salary FROM employees WHERE salary IN (SELECT salary FROM employees WHERE department_id = 30); ``` #### ...

    Sybase SQL Server中子查询的设计和使用.pdf

    2. 子查询不能在内部操作其结果,即不能包括 into、order by、compute 子句和 union 运算符。 3. 子查询不能包括 for browse 子句。 4. subquery_select_list 一般只能包括一个表达式或列名,只有由 exists 引导的子...

    SQL子查询学习[整理].pdf

    此外,标量子查询也可用于CASE表达式和ORDER BY子句中,以动态地根据子查询的结果进行条件判断或排序。 2. **多列子查询**: 多列子查询返回多列数据,匹配时需确保外部查询的条件与子查询返回的列数和顺序一致。...

    oracle 子查询

    - 在单行子查询中使用单行运算符,在多行子查询中使用多行运算符。 - 使用`ORDER BY`子句仅当执行Top-N分析时。 #### 九、单行子查询示例 例如,找出与员工ID为141相同职位并且工资高于员工ID为143的员工: ```sql ...

    Oracle初级(子查询).doc

    本篇文章将深入讲解Oracle中的子查询概念及其应用。 子查询,也称作嵌套查询,是在一个SQL查询语句中嵌入另一个查询语句,用于获取或处理复杂的数据需求。子查询可以出现在SELECT、FROM、WHERE等子句中,帮助我们...

    oracle表连接和子查询实例

    以上实例展示了Oracle中表连接和子查询的各种应用方法,包括但不限于最大薪资部门员工信息、部门平均薪资等级、非经理员工姓名等。这些知识点对于理解和掌握Oracle数据库中的高级查询技术非常重要,对于数据库开发者...

    oracle子查询PPT学习教案.pptx

    在子查询中,避免使用`ORDER BY`子句,除非是在做Top-N分析。此外,根据比较操作符的不同,我们可以使用单行子查询(返回一行)或多行子查询(返回多行)。 单行子查询适用于与单个值进行比较,可以使用等于(=)、...

    数据库系统及原理及MYSQL应用教程多表连接和子查询实验报告

    实验过程中遇到的问题可能包括理解不同类型的连接查询,正确使用子查询,以及在实践中处理空值和不匹配的数据。解决方法可能涉及更深入地研究SQL语法,调试查询,以及查阅相关文档。心得体会可能涵盖了解决复杂查询...

    Oracle数据库应用教程--子查询与高级查询.pptx

    - 注意:子查询不应包含ORDER BY子句,因为它的结果在外部查询中不受排序影响。 3. **在HAVING子句中使用子查询**: - HAVING子句用于分组后的条件筛选,子查询可以在HAVING子句中,以对分组后的数据进行进一步...

    00582 Oracle公司内部数据库培训资料-Les06_子查询(PPT 21页).ppt

    3. 除非进行Top-N分析,否则子查询中不应包含`ORDER BY`子句,因为这会影响子查询的执行效率。 4. 根据主查询的需求选择合适的子查询类型,单行操作符对应单行子查询,多行操作符对应多行子查询。 例如,以下查询...

    Mysql联合查询UNION和Order by同时使用报错问题的解决办法

    当你试图在每个子查询中添加ORDER BY子句时,MySQL会报错,因为ORDER BY应该只应用于最终的结果集,而不是单独的子查询。正确的做法是将ORDER BY放在所有UNION操作的最后,对整个合并后的结果集进行排序。例如: ``...

Global site tag (gtag.js) - Google Analytics