with a as(
select 1 aid,'指标1' signname,11 data from dual union all
select 2, '指标2', 21 from dual),
b as(
select 3 bid,'指标3' signname,31 data from dual union all
select 4, '指标4', 41 from dual)
select aa.rn,aa.aid,bb.bid
from (select rownum rn,a.* from a) aa,
(select rownum rn,b.* from b) bb
where aa.rn=bb.rn;原应该得到的结果是
        RN        AID        BID
---------- ---------- ----------
         1          1          3
         2          2          4可是我执行的结果却是:
应该不是PL/SQL版本的原因,因为我用两个版本的使用,都是这样的结果

解决方案 »

  1.   

    拿板凳坐下学习。我一直想弄明白这个with as,还有那个connect_by什么遍历结点 是怎么回事
      

  2.   

    用UNION的别名要一致,否则不会得到结果改成
    select 1 aid,'指标1' signname,11 data from dual 
    union all
    select 2 aid,'指标2' signname,21 data from dual
      

  3.   

    厄,我运行了你的代码在slqplus下和 PL/SQL 7.1.4下,都是有显示结果集的。
      

  4.   

    相当杯具啊,同事的PL/SQL也能正常运行,我用办公室的和自己的运行都不正常,让我很无奈
      

  5.   

    object browser执行也不成,感觉是数据库安装有问题,无奈了
      

  6.   

    我怀疑是安装oracle的时候,可能有些安装有问题
      

  7.   


    --这样有结果产生吗?
    with a as(
    select 1 id from dual
    )
    SELECT * from a
      

  8.   

    也没有
    执行的结果是:
    http://hi.csdn.net/attachment/201101/4/4189895_1294118958qmq5.jpg
      

  9.   

    我的是有显示出来。
    SQL> 
    SQL> with  a as (select 1 from dual)
      2  select * from a
      3  ;
     
             1
    ----------
             1
     
    SQL> 
      

  10.   

    你本机的ORACLE版本不是9I或者9I以上的吧?
    with语法只在9I以上才支持的。