我正在寻找一种可靠的算法方法来嵌套Oracle中的查询,而不必解析和重建SQL语句。在DB2、MYSQL和SQLITE中,我可以简单地从内部子查询中的最大列集嵌套到非常外部查询中最小的列集,如下所示:
SELECT A, B FROM (
SELECT A, B, C FROM (
SELECT A, B, C, D FROM (
SELECT * FROM myTable
)
)
)
)这不适用于Oracle,我不得不使用WITH子句,但这允许我进行某种级别的嵌套,比如
WITH Q1 as (
SELECT * FROM myTable
)
SELECT A, B FROM Q1是否有一种算法方法可以在Oracle中嵌套select语句,比如上面的DB2或MySQL
您总是可以假设它是一个单一的表。查询将自动生成。
找到了根本原因:
我的代码假设需要一个"AS别名“,并将其附加到子查询中,如"Select,B(从myTable中选择A,B,C) AS Q1”-- Oracle不喜欢这样,并给出了一个“缺少右括号”的错误。
发布于 2013-07-14 22:18:43
你所说的“不工作”是什么意思?您想要的结构在Oracle中运行得非常好。
SQL> select ename from (
2 select ename, empno from (
3 select ename, empno, job from (
4 select ename, empno, job, mgr from (
5 select * from emp
6 )
7 )
8 )
9 );
ENAME
----------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
14 rows selected.https://stackoverflow.com/questions/17644221
复制相似问题