SELECT inner.* 
FROM (SELECT ROWNUM AS num, inner0.* 
FROM (SELECT * 
FROM TBLCOMMUNICATION A,TBLCOMMUNICATETYPE B,TBLCATALOG C 
WHERE  A.TYPEID  =   B.TYPEID (+) AND A.CATALOGID=C.CATALOGID(+)  
order by a.Communicationid desc ) inner0 
WHERE ROWNUM<11) inner 
WHERE inner.num>=1错误提示:未明确定义列 

解决方案 »

  1.   

    SELECT inner.* 
    FROM (SELECT ROWNUM AS num, inner0.* 
    FROM (SELECT * 
    FROM TBLCOMMUNICATION A left outer join TBLCOMMUNICATETYPE B on A.TYPEID = B.TYPEID left outer join TBLCATALOG C on A.CATALOGID=C.CATALOGID
    ) inner0 
    WHERE ROWNUM<11) inner 
    WHERE inner.num>=1
    好象这样可以,我的是10G
      

  2.   

    以为这三个表(TBLCOMMUNICATION A,TBLCOMMUNICATETYPE B,TBLCATALOG C )中有相同的列num,你最外面的查询条件中采用了inner.num,没有指定是哪个表的num列!建议一般不要使用select * 特别是你 多表作为子查询时!
      

  3.   

    楼主不要使用‘inner’这样的东东做表的别名,好像是关键字。
    好好改改名字,sql应该没有问题。