下面是我的代码select rownum rn,t__.* from (
 select * from users us, post pt,state se,branch bh 
  where us.branch_id=bh.branch_id 
  and us.post_id=pt.post_id 
  and us.state_id=se.state_id   
  and bh.branch_name like '%' 
  and  pt.post_name like '%'
  and us.users_name like '%'
  and us.users_id like '%'
 ) t__ 
如果只要最中间括号内的语句  就能够正常显示,一旦嵌套一层括号,就出现标题错误,如果给t__.*  就不报错了,求大神解决

解决方案 »

  1.   

    -- 查询1:
    11:18:52 SCOTT@tdwora > select rownum rn, t__.* from (
    11:19:46   2  select e.deptno, e.ename, d.deptno, d.loc
    11:19:46   3  from emp e, dept d
    11:19:46   4  where e.deptno=d.deptno ) t__;
    select rownum rn, t__.* from (
                          *
    第 1 行出现错误:
    ORA-00918: 未明确定义列
    -- 查询2(将查询1中的子查询涉及到的两个同名字段 deptno去掉一个)11:19:47 SCOTT@tdwora > select rownum rn, t__.* from (
    11:20:11   2  select e.deptno, e.ename, d.loc
    11:20:11   3  from emp e, dept d
    11:20:11   4  where e.deptno=d.deptno ) t__;        RN     DEPTNO ENAME      LOC
    ---------- ---------- ---------- -------------
             1         10 KING       NEW YORK
             2         10 CLARK      NEW YORK
             3         20 FORD       DALLAS
             4         20 ADAMS      DALLAS
             5         20 JONES      DALLAS
             6         20 SMITH      DALLAS
             7         30 BLAKE      CHICAGO
             8         30 MARTIN     CHICAGO
             9         30 WARD       CHICAGO
            10         30 TURNER     CHICAGO
            11         30 ALLEN      CHICAGO已选择11行。
      

  2.   

    select * from users us, post pt,state se,branch bh  
      where us.branch_id=bh.branch_id  
      and us.post_id=pt.post_id  
      and us.state_id=se.state_id   
      and bh.branch_name like '%'  
      and pt.post_name like '%'
      and us.users_name like '%'
      and us.users_id like '%'你确定这个不会报错么,我感觉出错的话也是里层出错导致的,有相同的列名存在,建议不用select *,而用具体的表.字段名
      

  3.   

    子查询存同名列
    CREATE TABLE test2(id NUMBER(5),name1 VARCHAR2(15));
    CREATE TABLE test2(id NUMBER(5),name2 VARCHAR2(15));SELECT * FROM test1,test2;
    ID NAME1 ID NAME2SELECT ROWNUM rn,t.* FROM 
    (
      SELECT * FROM test1,test2
    )t;
    7 20 ORA-00918: 未明确定义列
         Total execution time 0 sec.
      

  4.   

    select * from users us, post pt,state se,branch bh  
      where us.branch_id=bh.branch_id   and us.post_id=pt.post_id   
      and us.state_id=se.state_id   
      and bh.branch_name like '%'  
      and pt.post_name like '%'
      and us.users_name like '%'
      and us.users_id like '%'你查询结果里 包含了重复的字段(标红)