【问题标题】:How to order data in oracle select query without using order by [duplicate]如何在不使用 order by [重复] 的情况下在 oracle 选择查询中对数据进行排序
【发布时间】:2016-02-08 12:51:06
【问题描述】:

我是 Oracle 的新手,在面试时遇到了这个问题,我无法回答

在不使用 ORDER BY 的情况下按顺序显示数据,包括 ASCENDING 和 DESCENDING。

在 Oracle 中有没有办法做到这一点?

【问题讨论】:

    标签: sql oracle oracle11g sql-order-by


    【解决方案1】:

    在某些情况下,您不需要ORDER BY 子句。

    假设您有一个表EMP,在列EMP_ID 上有一个索引。 此类查询不需要ORDER BY 子句,结果将由EMP_ID 自动排序:

    SELECT *
    FROM EMP
    WHERE EMP_ID > 10;
    

    但是,您不应依赖它。在某些情况下,Oracle 的行为可能会有所不同。

    【讨论】:

    • 引用 Tom Kyte,"reading data out via an index - does not imply data is sorted by the index key"。所以它有时可能会起作用,但即使有你的警告,我认为说你永远不需要订购是狡猾的。在某些情况下,您可能会在没有一个的情况下侥幸逃脱,直到优化器做了您意想不到的事情。 (但作为面试答案,我想没关系 - 只要还提供警告)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    相关资源
    最近更新 更多