Oracle select *和rownum

时间:2015-02-13 14:39:46

标签: java sql oracle

我试图从表中选择所有值,并按字母顺序排序后为每一行添加rownum。 (使用java,这是查询)

Select * FROM
  (Select *, rownum as row_id from
          (Select * FROM emp ORDER BY ename))
                Where row_id>=((?-1)*?)+1 and row_id<=(?*?);

然而我正在

java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

我相信它是因为Select *, rownum as row_id from选择所有字段并添加新字段的正确方法是什么?

1 个答案:

答案 0 :(得分:6)

当您在任何其他列中使用*(在Oracle中)时,您需要对其进行限定。所以,试试这个:

Select e.*
FROM (Select e.*, rownum as row_id
      from (Select *
            FROM emp
            ORDER BY ename
           ) e
     ) e
Where row_id >= ((?-1)*?)+1 and row_id <= (?*?);