weixin_37056225
懵懂的男孩
采纳率100%
2017-03-06 16:38

ORA-00918: 未明确定义列

20
  • sql
已采纳

SQL: select * from ( select tmp_page.*, rownum row_id from ( select * from receipt r,task t WHERE r.receipt_tid=t.task_id and t.task_status=1 ) tmp_page where rownum <= ? ) where row_id > ?

Cause: java.sql.SQLSyntaxErrorException: ORA-00918: 未明确定义列

哪儿的错?看的没毛病呀

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • Tiger_Zhao Tiger_Zhao 4年前

    不仅仅是语句中写明的字段会出问题。
    select * from receipt r,task t 如果两表存在同名字段,这个子查询就会出现同名字段。
    (可能)数据库自带的查询工具会做特别处理而不出错;大多数的数据组件,同名就会出错。
    * 需要改为详细列举字段,并且通过取别名避免同名。

    点赞 评论 复制链接分享
  • lhdren lhdren 4年前

    select * from receipt r,task t
    这两张表应该有名字相同的两列,只要排查下就行了

    点赞 评论 复制链接分享
  • daigualu zg1g 4年前

    select.嵌套太深,考虑重新理一下,

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 4年前

    当你查询两个表存在相同的列,而又没有明确指明你写的列是哪个表的时候就会报这个错。仔细检查下你几个表重名的列名。

    点赞 评论 复制链接分享

相关推荐