Oracle数据中如何在 where in() 条件传参

一、问题场景描述

在sql 条件中,如何在 where in()中想传入参数,如果直接 where in(:seqList),当传入单个值,seqList:= '80' 是没问题的,但是初入多个值时,seqList:= '80,90' ,因缺少单引号,导致查询结果不对。

二、解决办法

使用正则变换函数 regexp_substr()

javascript 复制代码
select * from fa_receita_farmacia_proc t where  t.NR_SEQUENCIA in 
        (SELECT 
         REGEXP_SUBSTR(:V_parameter,'[^,]+', 1, LEVEL) 
         FROM DUAL 
         CONNECT BY 
         REGEXP_SUBSTR(:V_parameter, '[^,]+', 1, LEVEL) IS NOT NULL) ;

测试数据: 20,30,40

执行结果:

相关推荐
安然无虞12 分钟前
「MongoDB数据库」初见
数据库·mysql·mongodb
一起养小猫20 分钟前
Flutter for OpenHarmony 实战:番茄钟应用完整开发指南
开发语言·jvm·数据库·flutter·信息可视化·harmonyos
Mr_Xuhhh23 分钟前
MySQL视图详解:虚拟表的创建、使用与实战
数据库·mysql
AI_567823 分钟前
MySQL索引优化全景指南:从慢查询诊断到智能调优
数据库·mysql
老虎062731 分钟前
Redis入门,配置,常见面试题总结
数据库·redis·缓存
一起养小猫33 分钟前
Flutter for OpenHarmony 实战:数据持久化方案深度解析
网络·jvm·数据库·flutter·游戏·harmonyos
codeRichLife34 分钟前
TimescaleDB保存100万条设备采集数据的两种存储方案对比分析
数据库
J&Lu43 分钟前
[DDD大营销-Redis]
数据库·redis·缓存
咚咚?1 小时前
麒麟操作系统达梦数据集群安装(一主多从)
数据库
u0109272711 小时前
使用XGBoost赢得Kaggle比赛
jvm·数据库·python