Database/Oracle2013. 1. 28. 13:04

다음과 같은 결과가 있다고 가정하자

select id, value

from test;

 id value 

 1

 a;
 1  b;

 2

 e;
 3  c;
 3  f;

그런데 id 별로 아래와 같이 단순하게 다중로우를 단일로우값으로 붙여서 표현하고 싶다면??

 id

 concat_value
 1  a;b;
 2

 e;

 3

 c;f;

그렇다면 아래와 같은 쿼리를 구현하면 된다.

select id, wmsys.wm_concat(value) as concat_value

from test

group by id;

==> 단, wm_concat 함수는 오라클 10g 이상의 버전에서만 사용이 가능하고,

아래와 같이 선언되어 있기 때문에 어떤 스키마에서도 실행이 가능하다.

GRANT EXECUTE ON WMSYS.WM_CONCAT TO PUBLIC;

CREATE PUBLIC SYNONYM WM_CONCAT FOR WMSYS.WM_CONCAT;

 

Posted by 아로나