当前位置: 代码迷 >> Oracle开发 >> ORA-00918:未明确定义列,该怎么处理
  详细解决方案

ORA-00918:未明确定义列,该怎么处理

热度:60   发布时间:2016-04-24 07:17:57.0
ORA-00918:未明确定义列
下面是我的代码

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__.* 就不报错了,求大神解决

------解决方案--------------------
SQL code
-- 查询1:11:18:52 SCOTT@tdwora > select rownum rn, t__.* from (11:19:46   2  select e.deptno, e.ename, d.deptno, d.loc11:19:46   3  from emp e, dept d11: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.loc11:20:11   3  from emp e, dept d11: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行。
------解决方案--------------------
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 '%'

你查询结果里 包含了重复的字段(标红)