码迷,mamicode.com
首页 > 数据库 > 详细

Oracle结合Mybatis实现取表TOP 10

时间:2017-11-03 00:17:04      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:实现   informix   和我   使用   rac   mys   jdb   blog   orm   

之前一直使用mysql和informix数据库,查表中前10条数据十分简单:

 

最原始版本:

select top * from student

当然,我们还可以写的复杂一点,比如外加一些查询条件?

比如查询前10条成绩大于80分的学生信息

 

添加了where查询条件的版本:

select top * from table where score > 80

 

但是!!oracle中没有top啊!!!!那么该如何实现呢?

嗯,可以用rownum!

oracle中原始版本

select * from student where rownum < 10

上面这个好像也没有复杂的地方。。但是问题来了,如果我们还希望加上分数大于80呢?

对于我这个oracle初学者来说,真的是费力。在这里就直接贴出来了,希望可以让一些人少费一些力!

 

oracle添加了where查询条件的版本

select * from(
        select rownum rn,A.* from student where score > 80) 
where rn < 10

简单分析一下上面的代码。实际上是先通过内嵌的sql语句查询出分数大于80的数据,再选择内嵌sql查询结果中的前10条数据

 

最后附上mybatis代码?

<select id="selectStudent" parameterType="hashmap" resultMap="BaseResultMap">
     select *
     from (
        select rownum rn, A.* from student A
        where STATUS = 99
        and score <![CDATA[>]]> #{scores,jdbcType=INTEGER}) 
     where rn <![CDATA[<=]]> #{number,jdbcType=INTEGER}
  </select>

上面的scores和number均为变量

 

碎碎念一般的写了这么点。希望能帮助一下遇到和我相同问题的朋友。

Oracle结合Mybatis实现取表TOP 10

标签:实现   informix   和我   使用   rac   mys   jdb   blog   orm   

原文地址:http://www.cnblogs.com/cfyrwang/p/7775142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!