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 不是索引 走全表查询 查到哪里是哪里 非线性

  • 相关阅读:
    java方法名的重载
    数据库ifnull方法
    java类的方法
    java属性的默认值
    sublime使用攻略
    1046 Shortest Distance
    1047 Student List for Course
    1048 Find Coins
    1049 Counting Ones
    1050 String Subtraction
  • 原文地址:https://www.cnblogs.com/Rombo713/p/13446645.html
Copyright © 2011-2022 走看看