Bootstrap

SQL, 将分段数不确定的字符串拆分成多列

MSSQL 数据库某表的一个字段是逗号分隔的字符串,字符串数量不定。

A_NUMBERitems
1i1,i2,i3,i4,i5,i6
2j1,j2,j3,j4,j5,i6,i7,i8
3k1,k2,k3
4
5m1

现在要把这个字段拆成 5 个新字段,名字分别是 Srllno1 至 Srllno5,值分别是将原字段拆开后的第 1 至第 4 个字符串,以及第 5 至最后一个字符串。字符串数量不足时填 null。

Srllno1Srllno2Srllno3Srllno4Srllno5
i1i2i3i4i5,i6
j1j2j3j4j5,i6,i7,i8
k1k2k3
m1

编写SPL代码

 A
1=mssql.query("select items from tb”)
2=A1.(items.split@c())
3=A2.new(~.m(1):Srllno1, ~.m(2):Srllno2, ~.m(3):Srllno3, ~.m(4):Srllno4, ~.m(5:).concat@c():Srllno5)

A1:通过JDBC查询数据库,取items字段。

A2:将itmes字段按逗号拆成多个字符串。

A3:新建二维表,取A2当前成员的第1至第4部分,命名为新字段Srllno1 至 Srllno4;再取第 5 至最有一部分,合并后命名为新字段 Srllno5。m 函数可以灵活地按位置取成员,并自动处理数组越界。

SPL已开源免费,欢迎前往乾学院了解更多!

SPL源码地址

免费下载试用

;