当前位置: 代码迷 >> Oracle管理 >> Oracle怎么实现联查的TOP1
  详细解决方案

Oracle怎么实现联查的TOP1

热度:80   发布时间:2016-04-24 05:16:51.0
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 ......
  相关解决方案