oracle拆分逗号分隔匹配数据

本文介绍了如何在Oracle数据库中处理以逗号分隔的附件ID数据。通过SQL查询,将列中的逗号分隔值转换为行,并进行匹配操作,以实现对特定需求流程附件的筛选与删除。示例查询展示了如何获取用户发起的流程及其对应的附件ID列表。
摘要由CSDN通过智能技术生成
Oracle某列数据是由逗号分隔特情况处理
select bha.*
from BI_HA_DEMAND_FLOW_ATTACH bha
where bha.idx in(
/**获取某用户所发起的流程,该需求流程所对应上传的附件ID信息列表**/
select substr(x.col_1, x.pos1, x.pos2 - x.pos1 - 1)
from (select t.col_1,
level as lv,
instr(',' || t.col_1 || ',', ',', 1, level) as pos1,
instr(',' || t.col_1 || ',', ',', 1, level + 1) as pos2
from (
/**将附件ID,由列转成行**/
select wm_concat(bhf.attach_id) col_1
from BI_HA_DEMAND_FLOW_INFO bhf) t
connect by level <=
(length(t.col_1) - length(replace(t.col_1, ',', ''))) + 1) x
);
以上这个SQL,为实际运用的,需求基础信息表中仅保存了以逗号为分隔符的附件ID,此时想删除该需求对应的附件内容,则上述SQL则是解决方案,下则SQL则为分解式描述
select wm_concat(bhf.attach_id) from BI_HA_DEMAND_FLOW_INFO bhf;

/**获取某用户所发起的流程,该需求流程所对应上传的附件ID信息列表**/
select substr(x.col_1,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值