现在有这样一张数据表字段1  字段2  字段3
  A      A      A
  A      A      A
  A      A      A
  B      B      B
  B      B      B
  B      B      B要做成这样的效果::字段1  字段2  字段3  字段1  字段2  字段3
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B
就是把数据的一半拿到表的右边,相当于放两个大列一样!!我是菜鸟,,刚开始学写pl/sql,这种要求不会写
我想了个办法,就是先查总的数据,然后总数据除以2,前一半数据create一个视图1,后一半数据create视图2,
然后再select两个视图的所有字段from 两个视图
结果是成了这种效果::
字段1  字段2  字段3  字段1  字段2  字段3
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B
  A      A      A      B      B      B这种就是相当于两个表的数据相乘了嘛,,我要的不是这种效果!!!求高手指点!!!

解决方案 »

  1.   

    select m.字段1 ,m.字段2, m.字段3 , 
           n.字段1 ,n.字段2, n.字段3 
    from 
    (select t.* , row_number() over(order by 字段1) px from tb where 字段1 = 'A') m full join
    (select t.* , row_number() over(order by 字段1) px from tb where 字段1 = 'B') n on m.px = m.px
      

  2.   

    首先多谢这位兄弟的回复,,但是其实我里面的数据都是不太一样的,,不是像我写的前3行数据都是A,后面都是B,所以估计是不能把 where 字段1 = 'A'这些用做条件的,,我是想无论数据是怎样的特殊性都能把后半段数据放到表的右边!!谢谢了!!也可能是我太菜不能理解你写的意思,,还请明示!!!