어떤 table 에 데이터가
colum1 colum2
aaa 1111
bbb 1111
aaa 2222
bbb 3333
aaa 555
이렇게 들어 있을때...
select 의 결과로
aaa 11112222555
bbb 11113333
이렇게 나오게 할수 있는지..
있다면 어떻게 해야 하는지 알고 싶습니다.
부탁드립니다. (__)
9i이상에서요.
col name format a50;
select job,substr(replace(sys_connect_by_path(ename, ',' ),' ',''),2) name
from(
select job,ename,
row_number() over(partition by job order by job,ename desc) r1,
(LEAD(ename) over(partition by job order by job,ename desc)) r2
from scott.emp
)
where r1 = 1
start with r2 is null
connect by prior ename = r2
order siblings by r2;
오라클 버전이 8.1.7입니다.
알려주신게 9i 이상에서라면.. ㅠㅠ 못쓰겠네요
decode을 응용하시던가
다음과 같이 쓰셔도...
create or replace function sf_rowcol(isql varchar2) return varchar2 is
pdata varchar2(40);
idata varchar2(32700);
cursor cur1 is select ename from scott.emp where job = isql;
begin
open cur1;
loop
fetch cur1 into pdata;
exit when cur1%notfound;
idata := idata || pdata ||',';
end loop;
return substr(trim(idata),1,length(trim(idata))-1);
end;
/
select job,sf_rowcol(job) name from scott.emp group by job;
해결되씀니다.. ^^
조건 감사드려요..