sql 语句解决不了
参考:
SQL  >  select  job,ename  from  emp;  
 
JOB              ENAME  
---------  ----------  
CLERK          SMITH  
SALESMAN    ALLEN  
SALESMAN    WARD  
MANAGER      JONES  
SALESMAN    MARTIN  
MANAGER      BLAKE  
MANAGER      CLARK  
ANALYST      SCOTT  
PRESIDENT  KING  
SALESMAN    TURNER  
CLERK          ADAMS  
 
JOB              ENAME  
---------  ----------  
CLERK          JAMES  
ANALYST      FORD  
CLERK          MILLER  
 
已选择14行。  
 
SQL  >  create  or  replace  function  f_ename(jobno  in  varchar2)  
   2    return  varchar2  is  
   3      
   4    str_return  varchar2(200);  
   5    cursor  c_ename(v_jobno  varchar2)  is  select  ename  from  emp  where  job=v_jobno;  
   6    begin  
   7    for  str_temp  in  c_ename(jobno)  loop  
   8    str_return:=str_return  |  |str_temp.ename;  
   9    end  loop;  
 10    return  str_return;  
 11    end;  
 12    /  
 
函数已创建。  
 
SQL  >  select  f_ename(job)  from  (  
   2    select  distinct  job  from  emp);  
 
F_ENAME(JOB)  
---------------------------------------  
 SCOTT  FORD  
 SMITH  ADAMS  JAMES  MILLER  
 JONES  BLAKE  CLARK  
 KING  
 ALLEN  WARD  MARTIN  TURNER  
 
SQL  >  
加上job列:  
SQL  >  select  job,f_ename(job)  from  (  
   2    select  distinct  job  from  emp);  
 
JOB            F_ENAME(JOB)  
-------------------------------------------------------  
ANALYST  SCOTT  FORD  
CLERK  SMITH  ADAMS  JAMES  MILLER  
MANAGER  JONES  BLAKE  CLARK  
PRESIDENT  KING  
SALESMAN  ALLEN  WARD  MARTIN  TURNER

解决方案 »

  1.   

    恩,用一条语句我也不会,用函数吧
    SQL> select * from lindong;        ID NAME
    ---------- ----
             1 a
             1 b
             2 aa
             2 bb
             2 abc
    SQL> create or replace function mypro(id in number)
      2  return varchar2 is ll varchar2(20);
      3  cursor mycursor(v_id number) is select name from lindong
      4  where id=v_id;
      5  begin
      6  for str_temp in mycursor(id) loop
      7  ll:=ll||str_temp.name;
      8  end loop;
      9  return ll;
     10  end;
     11  /函数已创建。SQL> select mypro(id) from (select distinct id from lindong);
    MYPRO(ID)
    ----------------------------------------------------------------ab
    aabbabcSQL> select id,mypro(id) from (select distinct id from lindong);        ID
    ----------
    MYPRO(ID)
    ---------------------------------------------------------------         1
    ab         2
    aabbabc