• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle结合Mybatis实现取表TOP 10条数据

    之前一直使用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均为变量

    ps:mybatis取Oracle序列,值相同问题处理

    select id="getCode" resultType="java.lang.String">
      select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual
    /select>

    上述mybatis代码在调用是总是获取到同一个序列的值,查询相关资料得知是mybatis的缓存问题:

    加上useCache="false" flushCache="false" 属性即可:

    select id="getCode" resultType="java.lang.String" useCache="false" flushCache="false">
    select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual
    /select>

    总结

    以上所述是小编给大家介绍的Oracle结合Mybatis实现取表TOP 10条数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • 解决mybatis一对多关联查询多条数据只显示一条的问题
    • 解决mybatis plus 分页查询有条数,total和pages都是零的问题
    • mybatis mysql delete in操作只能删除第一条数据的方法
    • Mybatis查询记录条数的实例代码
    • Mybatis RowBounds 限制查询条数的实现代码
    • Mybatis批量插入返回成功的数目实例
    上一篇:oracle中decode函数的使用方法示例
    下一篇:Oracle dbca时报:ORA-12547: TNS:lost contact错误的解决
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle结合Mybatis实现取表TOP 10条数据 Oracle,结合,Mybatis,实现,取表,