错误信息是什么?
try:
SELECT *  FROM (SELECT conferenceplan.*,conferencenotice.*,rownum rnum FROM conferenceplan ,conferencenotice WHERE  conferenceplan.conferenceid=conferencenotice.conferenceid  WHERE ROWNUM <=20) t WHERE (rnum > 0)

解决方案 »

  1.   

    oracle 数据分页查询1. 最好还是利用分析函数
    row_number() over ( partition by col1 order by col2 )比如想取出100-150条记录,按照tname排序select tname,tabtype from (
       select tname,tabtype,row_number() over ( order by tname ) rn from tab
    )
    where rn between 100 and 150;2. 直接使用rownum 虚列
    select tname,tabtype from (
       select tname,tabtype,rownum rn from tab where rownum <= 150
    )
    where rn >= 100;
    使用序列不能基于整个记录集合进行排序,如果指定了order by子句,排序的的是选出来的记录集的排序.
      

  2.   

    错误信息:为明确定义列。
    用这个 是一样的conferenceplan.*,conferencenotice.*,
    因为他们有相同的列。
      

  3.   

    建议,直接使用rownum 虚列,数据响应较快.时间为.09S,
    而利用分析函数需要2S..51recoder
      

  4.   

    在Oracle下ROWNUM函数是对查询结果按照顺序分配自增行序号,所以很多人都利用这个特点进行分页操作,即rownum between 30 and 60,这种限制返回行数的小窍门在普通情况下都很正常,但如果要对返回结果在进行排序就变得乱套了。还是用MINUS这个减法集合运算符,MINUS是找到两个给定的数据集合之间的差异,即找到一个数据集合,该集合的数据是仅存在于前一个数据集而后一个数据集中不存在的,相当于集合1-集合2,利用此函数,我可以让集合1返回的是前50条数据,而集合2返回的是前30条,50-30就相当于返回的第30-50的数据。自己在网上搜一下吧!