查找字段中包含指定字符串组的记录
Oracle 数据库的某表有多个字符串字段。
fname |
lname |
street |
city |
return from select |
John |
Doe |
mainstreet |
New York |
yes |
John |
Doe |
street |
New York |
no |
Doe |
John |
mainstreet |
New York |
yes |
mainstreet |
John |
doe |
New York |
yes |
c2 |
c2 |
c3 |
c4 |
c5 |
现在要输入以逗号为分隔符、含有多个字符串的参数,要求从该表中找出字段包含所有这些字符串的记录,或者说字段的集合是参数的超集的那些记录。比如,当参数 argA="street John Doe" 时,计算结果如下:
fname |
lname |
street |
city |
return from select |
John |
Doe |
street |
New York |
no |
编写SPL代码
A |
|
1 |
=orcl.query("select * from tb") |
2 |
=argA.split(" ") |
3 |
=A1.select(A2\~.array()==[]) |
A1:通过JDBC查询数据库。
A2:按空格将参数拆分为字符串集合。
A3:过滤出参数与字段集合的差集为空集的记录,相当于求字段的集合是参数的超集的那些记录。
英文版 https://c.scudata.com/article/1733272712678