在oracle中用一条sql语句无法解决。

解决方案 »

  1.   

    一般用下列语句可表达意思:
    select 公司名,部门名,员工 from your_tb group by 公司名,部门名;
    你完整的意思表达要用程序来实现。
      

  2.   

    一条sql语句无法解决,用游标把。
      

  3.   

    主要的SQL:
    select 公司名,部门,员工 from table
    order by 公司名,部门,员工剩下的在程序中控制。
    应该好做。
      

  4.   

    一条sql语句无法解决,用游标可以。
      

  5.   

    哈哈,给你一个例子,自己改改:
    SQL> create or replace function p_combine(id t2.id%TYPE,id1 t2.id1%TYPE) return
    varchar2
      2  as
      3     my_id t2.id%TYPE;
      4     my_id1 t2.id1%TYPE;
      5     my_name t2.name%TYPE;
      6     my_return varchar2(1000);
      7     CURSOR c1 IS SELECT name FROM t2 WHERE id = my_id and id1 = my_id1;
      8  BEGIN
      9     my_id:=id;
     10     my_id1:=id1;
     11     my_return:='';
     12     OPEN c1;
     13     LOOP
     14        FETCH c1 INTO my_name;
     15            EXIT WHEN c1%NOTFOUND;
     16         my_return:=my_return||my_name;
     17     END LOOP;
     18     close c1;
     19     return my_return;
     20  END p_combine;
     21  /函数已创建。SQL> select id,id1,p_combine(id,id1) from t2 group by id,id1;        ID        ID1
    ---------- ----------
    P_COMBINE(ID,ID1)
    -------------------------------------------------------------------------------         1          1
    wwwqqqhhh~~         1          2
    qqqqqqwwwhhh
    SQL> select * from t2;        ID        ID1 NAME
    ---------- ---------- ----------
             1          1 www
             1          2 qqq
             1          1 qqq
             1          1 hhh
             1          2 qqq
             1          2 www
             1          2 hhh
             1          1 ~
             1          1 ~已选择9行。SQL>