对应的item数目有限的话可以使用decode 实现

解决方案 »

  1.   

    具体写法?(要求是先insert了所有no之后,进行update)
      

  2.   

    http://expert.csdn.net/Expert/topicview.asp?id=1211043
      

  3.   

    [Q]如何实现行列转换 
    [A]1、固定列数的行列转换

    student  subject grade
    ---------------------------
    student1  语文 80
    student1  数学 70
    student1  英语 60
    student2  语文 90
    student2  数学 80
    student2 英语 100
    ……
    转换为 
    语文  数学  英语
    student1   80    70     60
    student2   90    80     100
    ……
    语句如下:
    select student,sum(decode(subject,’语文’, grade,null)) “语文”,
               sum(decode(subject,’数学’, grade,null)) “数学”,
    sum(decode(subject,’英语’, grade,null)) “英语”
       from table
       group by student2、不定列行列转换

    c1     c2
    --------------
    1      我
    1      是
    1      谁
    2      知
    2  道
    3  不
    ……
    转换为
    1   我是谁
    2  知道
    3  不
    这一类型的转换必须借助于PL/SQL来完成,这里给一个例子
    CREATE OR REPLACE FUNCTION get_c2(tmp_c1 NUMBER) 
    RETURN VARCHAR2 
    IS 
    Col_c2 VARCHAR2(4000); 
    BEGIN
    FOR cur IN (SELECT c2 FROM t WHERE c1=tmp_c1) LOOP  
    Col_c2 := Col_c2||cur.c2; 
    END LOOP; 
    Col_c2 := rtrim(Col_c2,1);
    RETURN Col_c2; 
    END;
    /