在过滤的结果集中根据情况决定是否再过滤

DB2 数据库某表如下:

ID

ABBREV

1

A

1

B

2

B

2

C

3

A

3

A

3

C

现在要初步过滤出 ID 等于指定参数的记录,并根据结果集的 ABBREV 字段是否含有”A”做进一步的处理,含有”A”时,进一步过滤出只含有”A”的记录并返回;不含”A”时,直接返回初步过滤结果。

比如参数等于 1 时,应当返回:

ID

ABBREV

1

A

参数等于 2 时,返回:

ID

ABBREV

2

B

2

C

参数等于 3 时,返回:

ID

ABBREV

3

A

3

A

编写SPL代码


 A

1

=db2.query("select * from tb where ID=?",argID)

2

=if((t=A1.select(ABBREV=="A"))==[],A1,t)

A1:通过 JDBC 查询数据库,初步过滤出 ID 等于指定参数的记录.

A2:进一步过滤 ABBREV 等于 "A" 的记录,如果结果为空集,则返回 A1;如果结果非空集,则返回进一步过滤的结果。

问题来源:https://stackoverflow.com/questions/78371930/db2-filter-sql-for-condition