将某列中的串拆分到多行
例题描述和简单分析
有数据库表SAMPLE,数据如下所示:
CLIENT |
DATA |
1 |
["a","b","c"] |
2 |
["k"] |
需要将DATA 列中的串(json 格式)拆分到多行,结果如下所示:
CLIENT |
DATA |
1 |
a |
1 |
b |
1 |
c |
2 |
k |
解法及简要说明
在集算器中编写脚本p1.dfx,如下所示:
A |
|
1 |
=connect("demo") |
2 |
=A1.query@x("SELECT * FROM SAMPLE") |
3 |
=A2.news(json(DATA);CLIENT,~:DATA) |
简要说明:
A1 连数据源为 demo 的数据库
A2 返回查询结果所组成的序表,结束时自动关闭数据库连接
A3 将 DATA 列按 json 格式解析成序列后拆分到多行
JAVA 集成这段代码的方法可参考:《Java 如何调用 SPL 脚本》。
https://stackoverflow.com/questions/64145560/json-array-column-split-into-rows-sql
英文版
英文版