2009-03-27 3 views
1

제목에서 알 수 있듯이 여러 행을 계정 당 하나의 출력으로 병합하는 방법이 필요합니다.SQL * PLus에서 여러 개의 rtansaction 행을 하나의 행으로 병합하는 플랫 파일 만들기

계정 거래

12345678 ABC

12345678가 DEF

12346578 GHI

67,891,011는 ABC

67891011 JKL

내가 필요 : 예를 들어 테이블은 다음과 같다 출력은 다음과 같습니다.

12345678 | ABC | DEF |

67891011 GHI

| ABC | JKL

거래의 양을 알 수 없습니다. 일부 계정의 경우 1 또는 2, 최대 100까지 가능합니다. '|'주어진

select account||'|'||stragg(transaction) 
from mytable 
where ... 
group by account; 

기능으로는 값을 구분하는 쉼표를 사용하지만 쉽게 사용하도록 변경할 수 있습니다

답변

1

는이 같은 Tom Kyte's STRAGG function의 사용자 정의 버전을 사용하여이 작업을 수행 할 수 있습니다.

예 EMP를 사용하여 (여전히 쉼표) :

SQL> select deptno || '|' || stragg(ename) names 
    2 from emp 
    3 group by deptno; 

NAMES 
-------------------------------------------------------------------------------- 
10|CLARK,KING,FARMER,MILLER 
20|JONES,FORD,SCOTT 
30|ALLEN,TURNER,WARD,MARTIN,BLAKE 
+0

좋은! 나는 이런 존재감이 전혀 없었습니다! 우리는 이것을 달성하기 위해 많은 코드를 작성했습니다! – Preets

+0

네, 가지고 다니기에 아주 편리한 기능입니다. –