【问题标题】:sql query with ORDERBY and ROWNUM [closed]带有 ORDER BY 和 ROWNUM 的 sql 查询
【发布时间】:2013-12-07 08:34:45
【问题描述】:

以下查询

SELECT JOB_TYPE, CLASS, JOB_RUN_START, JOB_RUN_FINISH, JOB_STATUS, JOB_PID FROM 
(SELECT * FROM ARCHIVE_JOBS ORDERBY JOB_RUN_START ASC ) WHERE ROWNUM <=6;

导致错误:

第 1 行出现错误:ORA-00907:缺少右括号

有人知道为什么吗?

【问题讨论】:

  • No Asenar 他在 order 和 by 之间缺少一个空格

标签: sql oracle11g


【解决方案1】:

它是order by,您错过了子查询的别名。我使用X 作为别名

SELECT JOB_TYPE, CLASS, JOB_RUN_START, JOB_RUN_FINISH, JOB_STATUS, JOB_PID 
FROM 
(
   SELECT * FROM ARCHIVE_JOBS 
   ORDER BY JOB_RUN_START ASC
) X
WHERE ROWNUM <=6;

【讨论】:

  • Asnar & juergen - 谢谢你们。查询有效。我只是这里的初学者。
  • @Asenar:不需要提醒用户接受答案。这完全取决于他们,如果您查看了 OPs 个人资料,您会注意到他已经接受了另外 2 个答案。所以他知道这是怎么回事。
【解决方案2】:

尝试用ORDER BY替换ORDERBY

ORDERBY 不是关键字,所以被 mysql 视为查询的FROM 部分(即表),表列表应以, 分隔

【讨论】:

  • 你是对的@Alfons
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
  • 2016-04-27
  • 2019-01-21
  • 1970-01-01
  • 2017-12-22
相关资源
最近更新 更多