用存储过程来实现应该是可以的
sql语句不行

解决方案 »

  1.   

    不定列行列转换

    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;
    /
      

  2.   

    Examples
    The following example returns the path of employee names from employee Kochhar to all employees of Kochhar (and their employees):SELECT LPAD(' ', 2*level-1)||SYS_CONNECT_BY_PATH(last_name, '/') "Path"
       FROM employees
       START WITH last_name = 'Kochhar'
       CONNECT BY PRIOR employee_id = manager_id;Path
    ---------------------------------------------------------------
     /Kochhar
       /Kochhar/Greenberg
         /Kochhar/Greenberg/Faviet
         /Kochhar/Greenberg/Chen
         /Kochhar/Greenberg/Sciarra
         /Kochhar/Greenberg/Urman
         /Kochhar/Greenberg/Popp
       /Kochhar/Whalen
       /Kochhar/Mavris
       /Kochhar/Baer
       /Kochhar/Higgins
         /Kochhar/Higgins/Gietz按照以上这个例子,根本就不用创建任何函数
      

  3.   

    请教碧咸,我想你举的例子是有PATH的情况才可以吧,下属又有下属这样的PATH。
    别的情况该怎么用呢?