9.9 用逗号作为分隔符拆分字符串
用逗号作为分隔符,将字符串拆分为字符串序列。
查询客户采购的产品名称,选购多个产品时用逗号分隔。产品表和客户销售表部分数据如下:
Product:
ID | Name | Website |
---|---|---|
R | Report | http://www.raqsoft.com.cn/r |
P | esProc | http://www.raqsoft.com.cn/p |
C | esCalc | http://www.raqsoft.com.cn/c |
M | AI Models | http://www.yimming.com/ |
… | … | … |
Sales:
ID | Customer | Product |
---|---|---|
1 | VINET | R |
2 | TOMSP | P,R |
3 | HANAR | P,R,C |
4 | VICTE | P |
… | … | … |
使用函数 s.split(d) 函数的 @c 选项,当 d 省略时按单字符拆分。
脚本:
A | |
---|---|
1 | =connect(“db”) |
2 | =A1.query(“select * from Product”) |
3 | =A1.query@x(“select * from Sales”) |
4 | =A3.run(Product=Product.split@c()) |
5 | =A4.run(Product=Product.(A2.find(~).Name).concat@c()) |
A1 连接数据库
A2 读取产品表
A3 读取客户销售表
A4 使用 split 函数的 @c 选项,将客户销售表中的产品按逗号拆成序列返回
A5 根据产品 ID 查找产品名称,将产品名称序列用逗号连接成字符串
运行结果:
A4:
ID | Customer | Product |
---|---|---|
1 | VINET | [R] |
2 | TOMSP | [P,R] |
3 | HANAR | [P,R,C] |
… | … | … |
A5:
ID | Customer | Product |
---|---|---|
1 | VINET | Report |
2 | TOMSP | esProc,Report |
3 | HANAR | esProc,Report,esCalc |
… | … | … |