日期:2014-05-17  浏览次数:20724 次

ORacle表联查
ORACLE 语句
SELECT 
field1,
(SELECT Id FROM (SELECT id From TB_GongWenLz WHERE TB_GongWenLz.GongwenId=gw.Id ORDER BY Tid DESC) WHERE RowNum=1) AS field2,
field3
FROM TB_GongWen gw


SQL SERVER语句
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

语句是从SQL项目复制到ORACLE项目的,SQL SERVER的语句能正常执行, 但ORACLE的语句改成上面那样的话就会提示错误,请问在ORACLE有这样的写法吗

------解决方案--------------------
改为试试看
SELECT 
field1,
(SELECT Id FROM TB_GongWenLz WHERE TB_GongWenLz.GongwenId=gw.Id and rownum<=1 ORDER BY Tid DESC) AS field2,
field3
FROM TB_GongWen gw
------解决方案--------------------
SQL code
SELECT  
field1,
(SELECT Id FROM (SELECT id From TB_GongWenLz,TB_GongWen gw
 WHERE TB_GongWenLz.GongwenId=gw.Id ORDER BY Tid DESC) WHERE RowNum=1) AS field2,
field3
FROM TB_GongWen