如何把一个普通的字符串转化为可执行的sql中的in条件

## 应用场景
程序给geoserver传了一个in 条件的参数 ‘AA|BB|CC’, 需要把AA|BB|CC转化为 in(‘AA’,‘BB’,‘CC’)
思路:
**方式1**
把原参数的|替换为逗号,并首尾拼接单引号,
(select concat('''', replace( ‘AA|BB|CC’,'|', ''','''), '''')
结果 不生效
**方式2 :**
把原来的参数炸裂成多个结果集
select regexp_split_to_table(‘AA|BB|CC’, '\|')

SELECT count(bb.*),sum(bb.zmj) zmj,sum(bb.zjdmj)
zjdmj,sum(bb.jttdmj) jttdmj,sum(bb.xbzdk) xbzdk FROM
tdbp_zdbcj bb
join tdbp aa on aa.entity_id = bb.entity_id where aa.level3 in (select regexp_split_to_table(‘AA|BB|CC’, '\|'))

posted @ 2023-10-13 16:55  z-double  阅读(160)  评论(0编辑  收藏  举报