有哪位兄弟可以提供資料出來學習下,最好是能有例子。

解决方案 »

  1.   

    ORACLE的例子和贴子都不少,
    http://topic.csdn.net/u/20101022/10/79DA8607-0B8B-412C-91FE-1E59D8A3335C.html
      

  2.   

    http://topic.csdn.net/u/20080717/10/92673D4B-FA3B-428B-B915-8F7CBA7764DE.html
    这个也是。
    很多。
      

  3.   

    这个要看数据库来得, 不同的数据库, 处理机制不一样。例如:
    要求 查询 SALE_REPORT 表中,每日销售金额(SALE_MONEY)合计最大的10条数据,要求按从大到小,取第11条到第20条。
    对于 Oracle 数据库, 一般是用 ROWNUM 来处理。SELECT 
      *
    FROM
      (
      SELECT 
        ROWNUM AS NO,
        A.SALE_DATE,
        A.SUM_MONEY
      FROM
        (
        SELECT
          SALE_DATE,
          SUM(SALE_MONEY) AS SUM_MONEY
        FROM
          SALE_REPORT
        GROUP BY
          SALE_DATE
        ORDER BY
          SUM(SALE_MONEY) DESC
        ) A
      ) B
    WHERE  
      B.NO BETWEEN 11 AND 20
    对于 SQL Server 来说, 一般是使用 2个 Top  来处理
    SELECT
      TOP 10
      top20.*
    FROM
      (  
      SELECT
        TOP 20
        SALE_DATE,
        SUM(SALE_MONEY) AS SUM_MONEY
      FROM
        SALE_REPORT
      GROUP BY
        SALE_DATE
      ORDER BY
        SALE_DATE DESC
      ) AS top20
    ORDER BY
      top20.SALE_DATE ASC
    对于 Mysql 来说, 用 Limit  
    SELECT
      SALE_DATE,
      SUM(SALE_MONEY) AS SUM_MONEY
    FROM
      SALE_REPORT
    GROUP BY
      SALE_DATE
    ORDER BY
      SUM(SALE_MONEY) DESC
    LIMIT 11, 10
      

  4.   

    select ceil(rownum/4),empno,ename from scott.emp.利用ceil()这个函数来实现分页,可以再后面加group by 
      

  5.   

    1. Oracle中的分页使用rownum
       -- 查询products表中第6条到第10条记录。