我试图从表中选择所有值,并按字母顺序排序后为每一行添加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
选择所有字段并添加新字段的正确方法是什么?
答案 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 <= (?*?);