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

Oracle怎么实现联查的TOP1

2012-06-13 
Oracle如何实现联查的TOP1SELECTfield1,(SELECT TOP(1) Id FROM TB_GongWenLz WHERE TB_GongWenLz.Gongwen

Oracle如何实现联查的TOP1
SELECT  
field1,
(SELECT TOP(1) Id FROM TB_GongWenLz WHERE TB_GongWenLz.GongwenId=gw.Id ORDER BY Tid DESC) AS field2,
field3
FROM TB_GongWen gw
WHERE ......

请问这个SQL语句如何改成Oracle的,主要是field2的TOP(1)那里如何实现.谢谢指点

[解决办法]

SQL code
--oracle没top,一般都用rownum或rank等,试下select field1,t.Id,field3from TB_GongWen,(select rank() over(partition by GongwenId order by Tid desc) rank,Id,GongwenId  FROM TB_GongWenLz) twhere t.rank=1 and t.GongwenId=gw.Id...
[解决办法]
select t.*,rownum from (select * from s_biz_entity order by ywst_id) t where rownum=1
先把你的表按你的规则排序后再将它作为一张表查询 试试
[解决办法]
ORACLE中用分页可以实现
SELECT
field1,
select id from(SELECT Id,rownum FROM TB_GongWenLz 
WHERE TB_GongWenLz.GongwenId=gw.Id
 ORDER BY Tid DESC) field2 where rownum=1,
field3
FROM TB_GongWen gw
WHERE ......

热点排行