1

正如标题所说,我需要一种将多行扁平化为每个帐户一个 luine 输出的方法。例如表如下所示:

账户交易

12345678 ABC

12345678 DEF

12346578 GHI

67891011 ABC

67891011 JKL

我需要输出为:

12345678|ABC|DEF|GHI

67891011|ABC|JKL

交易金额未知。对于某些帐户,它可能是 1 或 2,一直到 100。

4

1 回答 1

1

您可以使用自定义版本的 Tom Kyte 的 STRAGG 函数来执行此操作,如下所示:

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 回答