oracle实现如下效果表 aid    name1       a2       b3        c4      d
需要结果集为
id    name  1      b2      c3       d4       a有好的写法不

解决方案 »

  1.   

    测试数据:CREATE TABLE T190
    (
        ID NUMBER(4),
        F1 VARCHAR2(20)
    );INSERT INTO T190 VALUES(1, 'a');
    INSERT INTO T190 VALUES(2, 'b');
    INSERT INTO T190 VALUES(3, 'c');
    INSERT INTO T190 VALUES(4, 'd');
    测试结果:
      

  2.   

    估计楼主是想要分析函数的效果
    lag() over 和lead() over()
      

  3.   


    with t as(
    select 1 id, 'a' name from dual
    union all
    select 2,'b' from dual
    union all
    select 3,'c' from dual
    union all
    select 4,'d' from dual
    )select id,name from t order by mod(id,4)
            ID NAME
    ---------- ----
             4 d
             1 a
             2 b
             3 c
      

  4.   


    with t as(
    select 1 id, 'a' name from dual
    union all
    select 2,'b' from dual
    union all
    select 3,'c' from dual
    union all
    select 4,'d' from dual
    )select id,name from t order by mod(id+2,4)
            ID NAME
    ---------- ----
             2 b
             3 c
             4 d
             1 a
      

  5.   


    with t as(
    select 1 id, 'a' name from dual
    union all
    select 2,'b' from dual
    union all
    select 3,'c' from dual
    union all
    select 4,'d' from dual
    )select mod(id+2,4)+1 id,name from t order by id        ID NAME
    ---------- ----
             1 b
             2 c
             3 d
             4 a