首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle嵌套多个子查询

问Oracle嵌套多个子查询
EN

Stack Overflow用户
提问于 2013-07-14 21:57:59
回答 1查看 2.3K关注 0票数 0

我正在寻找一种可靠的算法方法来嵌套Oracle中的查询,而不必解析和重建SQL语句。在DB2、MYSQL和SQLITE中,我可以简单地从内部子查询中的最大列集嵌套到非常外部查询中最小的列集,如下所示:

代码语言:javascript
复制
  SELECT A, B FROM (
       SELECT A, B, C FROM (
            SELECT A, B, C, D FROM (
                 SELECT * FROM myTable
                 )
            )
      )
 )

这不适用于Oracle,我不得不使用WITH子句,但这允许我进行某种级别的嵌套,比如

代码语言:javascript
复制
 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不喜欢这样,并给出了一个“缺少右括号”的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-14 22:18:43

你所说的“不工作”是什么意思?您想要的结构在Oracle中运行得非常好。

代码语言:javascript
复制
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.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17644221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档