zoukankan      html  css  js  c++  java
  • Oracle踩坑(使用Navicat12)

    一. 分页问题

    1. 一开始想用ROWNUM关键字做大小判断来分页,发现实现不了,>号或者BETWEEN AND都无法正确获取数据,只能通过<获取前几条数据

    (ROWNUM不匹配>,BETWEEN AND如AND前的数字大于0也是一个道理)

    2. 只能<号,那么倒序试试,发现还是不行。很坑的一处:看起来像是里层先ORDER BY再WHERE,外层则先WHERE

     真是奇葩(怀疑是:ROWNUM相当于全局变量,第一次使用后就固定值了

    SELECT * FROM(
    Select *
    From TABLE
    WHERE ROWNUM < 20
    ORDER BY CODE )
    WHERE ROWNUM < 10
    ORDER BY CODE DESC

    3. 网上看到这个可以,里层把ROWNUM作为参数,外层就可以使用>号了。

    SELECT * FROM (SELECT *,ROWNUM AS RM
    FROM DIC_OCCUPATION_CODE
    WHERE ROWNUM <= 20
    ORDER BY CODE
    ) WHERE RM > 10

    但是,这里又有一个坑:*号和ROWNUM是不能直接一起用的

    一个一个敲字段,或者使用别名(如A.*,ROWNUM),否则报错:FROM keyword not found where expected

     4. 感觉涉及到ROWNUM就都特别的难搞

    比如排序失效:

      1)order by 后面是索引 走索引查询 是线性顺序

      2)order by 不是索引 走全表查询 查到哪里是哪里 非线性

  • 相关阅读:
    调试SQL Server的存储过程及用户定义函数
    寻找 vb.net 事务处理高级编程 的代码!!
    解析Java类和对象的初始化过程
    SQL 安装进程被挂起!
    教你成为一个受欢迎的人
    final class作用
    微软反跨站脚本库
    pdf解析
    ce'shi测试微博
    淘宝架构变化
  • 原文地址:https://www.cnblogs.com/Rombo713/p/13446645.html
Copyright © 2011-2022 走看看