将某列中的串拆分到多行

例题描述和简单分析

有数据库表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