MSSQL 数据库某表的一个字段是逗号分隔的字符串,字符串数量不定。
A_NUMBER | items |
1 | i1,i2,i3,i4,i5,i6 |
2 | j1,j2,j3,j4,j5,i6,i7,i8 |
3 | k1,k2,k3 |
4 | |
5 | m1 |
现在要把这个字段拆成 5 个新字段,名字分别是 Srllno1 至 Srllno5,值分别是将原字段拆开后的第 1 至第 4 个字符串,以及第 5 至最后一个字符串。字符串数量不足时填 null。
Srllno1 | Srllno2 | Srllno3 | Srllno4 | Srllno5 |
i1 | i2 | i3 | i4 | i5,i6 |
j1 | j2 | j3 | j4 | j5,i6,i7,i8 |
k1 | k2 | k3 | ||
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源码地址
免费下载试用