各种数据库分页SQL总结

1. Oracle,使用3层嵌套
引用

SELECT
  *
FROM
  (
    SELECT
      B.*, ROWNUM AS RN
    FROM
      (
        SELECT
          *
        FROM
          MS_USER
        WHERE
          COMP_CD = '1'
        ORDER BY
          LOGIN_USER_ID
      )B                       ---1.先查出符合条件数据
    WHERE
      ROWNUM <= 20             ---2.找出20行之前数据
  )C
WHERE
  C.RN >=10                    ---3.找出10行之后数据

SQL执行时会被优化,第二层的条件会被整合在最内层里,所以实际上子查询抽出的只是符合条件的20行之前的数据,所以这个SQL在查询靠前的数据时,比较快,越向后越慢。

你可能感兴趣的:(oracle,sql,C++,c,C#)