select floor(id/2) xh, id , name from t1
;select a.id , a.name 
from t1 a
inner join t1 b on mod( b.id,2)=1
and  b.id = a.id +1
where mod( a.id,2)=0可以用rownum,这里就不写了

解决方案 »

  1.   

    感谢楼上的回答,不过你的结果和我想要的都只差一点点。
    第一,我字段里的ID 是我随便写的,也可能是A、B、C、D、E不能当查询条件用。而且查询出来的新序号是0,1,1,2,2 不是我想要的0,0,1,1,2第二、用第二条语句得到的结果是
    钱  孙
    立  周
    而“赵” 不在查询结果之内。
      

  2.   

    select ceil(rownum/2) xh, id , name from t1
    ;select a.id , a.name ,b.id , b.name 
    from (select rownum r,t1.* from t1) a
    left outer join (select rownum r,t1.* from t1) b on mod( b.r,2)=0
    and  b.r = a.r +1
    where mod( a.r,2)=1
      

  3.   

    感谢两位!!  结贴。 顺便再问一个小问题。 
    sqlserver里的 select top 1 * from table 在oracle里怎么写??