2015-02-13 3 views
2

Im пытается выбрать все значения из таблицы + добавить rownum для каждой строки после упорядочивания по алфавиту. (С помощью Java, это запрос)Oracle select * and rownum

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, что это правильный способ выбора всех полей и добавления новых?

+0

Правильно, * нельзя смешивать с чем-либо еще. стол. * может помочь вам! – jarlh

+0

См. Мой ответ [здесь] (http://stackoverflow.com/questions/26338007/get-total-count-of-rows-in-oracle-and-then-get-only-4-results/26338583#26338583). –

ответ

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 <= (?*?); 
Смежные вопросы