之前一直使用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 *
from (
select rownum rn, A.* from student A
where STATUS = ''
and score ]]> #{scores,jdbcType=INTEGER})
where rn #{number,jdbcType=INTEGER}
上面的scores和number均为变量
碎碎念一般的写了这么点。希望能帮助一下遇到和我相同问题的朋友。