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

执行结果:

相关推荐
ifanatic几秒前
[每周一更]-(第138期):MySQL 子查询详解:原理、应用及优化方案
数据库·mysql
TDengine (老段)16 分钟前
TDengine 中的日志系统
java·大数据·数据库·物联网·时序数据库·tdengine·iotdb
kfepiza1 小时前
Debian编译安装mysql8.0.41源码包 笔记250401
数据库·笔记·mysql·debian·database
tjfsuxyy1 小时前
SqlServer整库迁移至Oracle
数据库·oracle·sqlserver
老王笔记1 小时前
MySQL统计信息
数据库·mysql
无名之逆2 小时前
[特殊字符] Hyperlane 框架:高性能、灵活、易用的 Rust 微服务解决方案
运维·服务器·开发语言·数据库·后端·微服务·rust
爱的叹息2 小时前
MongoDB 的详细解析,涵盖其核心概念、架构、功能、操作及应用场景
数据库·mongodb·架构
爱的叹息3 小时前
华为高斯(GaussDB)数据库中 Range、List、Hash三种分区方式 的完整SQL示例及增删改查操作,并附上总结对比表格
数据库·哈希算法·gaussdb
Hoxy.R4 小时前
什么是 CSSD?
服务器·开发语言·oracle