查找字段中包含指定字符串组的记录

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://stackoverflow.com/questions/78371969/search-for-multiple-strings-in-multiple-columns-in-oracle-sql