oracle order by subquery innerview(巢狀子查詢中不允許出現order by 語句)
阿新 • • 發佈:2019-02-10
引用:http://blog.sina.com.cn/s/blog_62e7fe6701015154.html
oracle官網給出了subquery的分類:
A subquery in theFROM
clause
of a SELECT
statement
is also called an inline view.
A subquery in the WHERE
clause
of a SELECT
statement
is also called a nested subquery.在From 語句中出現的子查詢被稱為 inline view(內聯檢視),在where 語句中出現的子查詢被稱為nested subquery(巢狀子查詢)。
經測試證明在巢狀子查詢中不允許出現order by 語句。例如:
select * from scott.emp
where ename in (select ename from scott.emp order by ename)
會報 “ORA-00907:缺少右括號”的錯誤。
如果將上面的巢狀子查詢再包裝一層,成為第二層查詢的內聯檢視。
select * from scott.emp
where ename in (select * from(select ename from scott.emp order by ename))
則可以成功執行。