1

タイトルが示すように、アカウントごとに複数の行を1つのluine出力にフラット化する方法が必要です。たとえば、テーブルは次のようになります。

アカウントトランザクション

12345678 ABC

12345678 DEF

12346578 GHI

67891011 ABC

67891011 JKL

出力は次のようにする必要があります。

12345678 | ABC | DEF | GHI

67891011 | ABC | JKL

トランザクションの量は不明です。一部のアカウントでは、100までの1または2になる可能性があります。

4

1 に答える 1

1

次のように、 Tom Kyte の STRAGG function のカスタマイズされたバージョンを使用してこれを行うことができます 。

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

与えられた関数はコンマを使用して値を区切りますが、'|' を使用するように簡単に変更できます。

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
于 2009-03-27T13:25:26.770 に答える