select DEP.*, DET.DET_NAME, DET1.DET_NAME
from NORMAL.TB_DEPARTMENT DEP, NORMAL.TB_DETAIL DET, NORMAL.TB_DETAIL DET1
where 1=1
and DEP.DEP_TYPE = DET.DET_ID
and DEP.DEP_LEVEL = DET1.DET_ID
因为他外层的sql查询A.*
但是这个语句里的有两个DET_NAME 分别是DET和DET1的
给他们指定别名就行了。亲测。
select DEP.*, DET.DET_NAME detdn, DET1.DET_NAME det1dn
from NORMAL.TB_DEPARTMENT DEP, NORMAL.TB_DETAIL DET, NORMAL.TB_DETAIL DET1
where 1=1
and DEP.DEP_TYPE = DET.DET_ID
and DEP.DEP_LEVEL = DET1.DET_ID
WHERE rownum <= 20 ) WHERE my_rownum >0)报ORA-00918:
错误应该在这里,你在( SELECT * FROM ( SELECT A.*, rownum as my_rownum FROM 这里定义了my_rownum,但是实际用的时候你却用的是rownum,在最外层的sql中没有定义my_rownum结果在where中却使用了my_rownum
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)