随笔-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 小米 阅读(1189) 评论(1)  编辑  收藏 所属分类: 数据库

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

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


网站导航:
 
小米,生活在深圳,专注于Java,主要从事数据库和网页编程。现在在学习着Hibernate和Spring。喜欢游戏、音乐和台球。联系方式:georgehill@21cn.com
<2005年5月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(27)

随笔分类

随笔档案

文章分类

文章档案

我的朋友们

我的链接

搜索

  •  

积分与排名

  • 积分 - 232912
  • 排名 - 247

最新评论

阅读排行榜

评论排行榜