每组多列数据转到同一行
例题描述和简单分析
有数据库表STAKEHOLDER,数据如下所示:
CLASS |
NAME |
SID |
1 |
name1 |
001 |
1 |
name2 |
002 |
2 |
name3 |
003 |
2 |
name4 |
004 |
需要按CLASS分组,并将其余列转到同一行,结果如下所示:
1 name1 001 name2 002
2 name3 003 name4 004
解法及简要说明
在集算器中编写脚本p1.dfx,如下所示:
A |
|
1 |
=connect("oracle") |
2 |
=A1.query@x("SELECT * FROM STAKEHOLDER") |
3 |
=A2.group(CLASS;~.(NAME/""/SID).concat(" ")).(#1/" "/#2) |
简要说明:
A1 连数据源为oracle的数据库
A2 返回查询结果所组成的序表,结束时自动关闭数据库连接
A3 按CLASS分组,将多列转到同一行
JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》。
英文版