随笔-57  评论-202  文章-17  trackbacks-0
      在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 小米 阅读(1186) 评论(1)  编辑  收藏 所属分类: 数据库

评论:
# re: 从MySQL到Oracle的分页SQL语句的移植 2009-02-03 17:13 | liuxinsi
对我很有帮助。3q  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: