在Oracle中不支持LIMT ? OFFSET ?这样的SQL语法,所以原先的MySQL的语句移植到Oracle中需要做一些改动,我的做法如下:
MySQL:SELECT * FROM foo ORDER BY xxx LIMIT ? OFFSET ?
Oracle:SELECT * FROM (SELECT ROWNUM AS NUMROW, A.* FROM (SELECT * FROM foo ORDER BY xxx) A) WHERE NUMROW>? AND NUMROW<=?
这是利用Oracle的一个虚拟的ROWNUM列实现的,只要在原来的SQL语句前面加上“SELECT * FROM (SELECT ROWNUM AS NUMROW, A.* FROM (”,并且把后面的“LIMIT ? OFFSET ?”改成“) A) WHERE NUMROW>? AND NUMROW<=?”,并且在代码处做相关的修改即可。
posted on 2005-05-12 14:52
小米 阅读(1181)
评论(1) 编辑 收藏 所属分类:
数据库