oracle报错ORA-00918: 未明确定义列

oracle报错ORA-00918: 未明确定义列,第1张

最里边的这个

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6795868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存