在Oracle SQL
中复制mySQL的限制 > mysql's
子句简化了订购后检索指定数量的行,对于登录数据至关重要。 但是,甲骨文需要一种不同的方法。>
LIMIT
> oracle的
pseududocolumn似乎是一种解决方案,但它在子句之前是应用的。这意味着对于一系列有序行使用ROWNUM
会产生不可预测的结果。>
ORDER BY
有效的子查询方法ROWNUM
可靠的方法涉及首先订购数据的子查询,然后应用以限制:
ROWNUM
定义上限和下限
<code class="language-sql">SELECT * FROM ( SELECT * FROM emp ORDER BY sal DESC ) WHERE ROWNUM <= 5;</code>>
为了更精确的控制,指定最小和最大行号需要更复杂的查询:
oracle 12c和后来的增强<code class="language-sql">SELECT * FROM ( SELECT a.*, ROWNUM rnum FROM ( SELECT * FROM <your_table> ORDER BY <your_column> ) a WHERE ROWNUM <= :MAX_ROW_TO_FETCH ) WHERE rnum >= :MIN_ROW_TO_FETCH;</code>
> Oracle 12c和更高版本的版本使用>和
>:>提供清洁的解决方案
FETCH FIRST
OFFSET
这个精简的语法提供了一种更直观的方法来管理Oracle中的行限制和偏移。
以上是如何有效地模拟Oracle SQL查询中的MySQL的限制条款?的详细内容。更多信息请关注PHP中文网其他相关文章!