0

我正在寻找一种可靠的算法方法来在 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 别名”并将其附加到子查询中,如“从(从 myTable 中选择 A、B、C)AS Q1中选择 A、B ” --- Oracle 不喜欢这样并给出错误“缺少右括号”

4

1 回答 1

1

“不起作用”是什么意思?您似乎想要的结构在 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.
于 2013-07-14T22:18:43.810 回答