各位大侠,我现在有这样的数据,
id1     id2
1001    1002
1003    1004
1005    1006现在我想把这些数据分组,变成如下排列:
组号   id       顺序
1      1001      2
1      1002      1
2      1003      2
2      1004      1
3      1005      2
3      1006      1数据我只是举个例子,表里面有很多数据都需要做这次排列,不知道这个SQL应该怎么写才能实现呢? 

解决方案 »

  1.   

    select rownum as 组号,id1 as id ,2 as 顺序 from testtab
    union all
    select rownum as 组号,id2 as id ,1 as 顺序 from testtab
      

  2.   

    增加排序
    select rownum as 组号,id1 as id ,2 as 顺序 from testtab
    union all
    select rownum as 组号,id2 as id ,1 as 顺序 from testtab
    order by 1,2
      

  3.   

    组号就是你第一张表里的行号啊,所以用rownum没错的
      

  4.   

    如果楼主的意思是以原表中从小到大自动排组号的话,稍微改下楼上的代码
    select row_number()over(order by id1) 组号,id1  id ,2  顺序 from testtab 
    union all 
    select row_number()over(order by id2) 组号,id2  id ,1  顺序 from testtab
    order by 2