首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle复合查询的有关问题

2011-12-25 
oracle复合查询的问题select*fromunittableuwherecontains(u.unitname, 公司 ) 1orderbylogtimedesc这个

oracle复合查询的问题
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   条件就能查出结果,请问各位着是怎么回事,谢谢。

[解决办法]
select ROWNUM RN, u.* from unittable u where contains(u.unitname, '公司 ')> 1
and RN> 0 AND RN <=15
order by logtime desc
[解决办法]
ROWNUM是记录的物理存储地址,估计可能刚好你查的记录的ROWNUM> 15;
而order by u.logtime desc 的排序和ROWNUM的排序不一致,所以可能会无法查出结构;
建议楼主把后面的WHERE RN> 0 AND RN <=15 去掉,应该就不会有这种问题了,
换言之是ROWNUM造成的问题.

热点排行