select * from  unittable u where contains(u.unitname,'公司')>1 order  by logtime desc 这个查询语句能查出来
SELECT * FROM (SELECT ROWNUM RN,TB.* FROM (select * from  unittable u where contains(u.unitname,'公司')>1 order by u.logtime desc  ) TB) WHERE RN>0 AND RN<=15 
这个查询结果为0,其中去掉contains 或 order by 条件就能查出结果,请问各位着是怎么回事,谢谢。

解决方案 »

  1.   

    select ROWNUM RN, u.* from  unittable u where contains(u.unitname,'公司')>1 
      and RN>0 AND RN<=15 
      order  by logtime desc
      

  2.   

    ROWNUM是记录的物理存储地址,估计可能刚好你查的记录的ROWNUM>15;
    而order by u.logtime desc  的排序和ROWNUM的排序不一致,所以可能会无法查出结构;
    建议楼主把后面的WHERE RN>0 AND RN<=15 去掉,应该就不会有这种问题了,
    换言之是ROWNUM造成的问题.