9.9 Split string using comma as the delimiter
Use comma as the delimiter to split a string into a sequence of strings.
Get names of products each customer purchases. Use the comma to separate multiple products. Here are Product table and Sales table:
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 |
| … | … | … |
The s.split(d) function works with @c option to split a string character by character when parameter d is absent.
SPL script:
| 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 Connect to the database.
A2 Import Product table.
A3 Import Sales table.
A4 split() function works with @c option to split products in Sales table with the comma and return result as a sequence.
A5 Find product names according to product ID and connect members of the sequence of product names into a string.
Execution result:
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 |
| … | … | … |
SPL Official Website 👉 https://www.esproc.com
SPL Feedback and Help 👉 https://www.reddit.com/r/esProcSPL
SPL Learning Material 👉 https://c.esproc.com
SPL Source Code and Package 👉 https://github.com/SPLWare/esProc
Discord 👉 https://discord.gg/sxd59A8F2W
Youtube 👉 https://www.youtube.com/@esProc_SPL