oracle中substr()函数和instr()函数用法

本文介绍了在Oracle数据库中使用substr()和instr()函数截取特定字段值的方法,并提供了一个复杂的示例来展示如何处理多个值并进行合并。

1. substr()函数和instr()函数

表中一个字段中存了多个值,每个值用逗号分隔,如:‘1,2’代表‘红,黄’,‘5,10’代表‘黑,白’

--截取逗号前的值
substr(a.str, 0, instr(a.str, ',')-1)
--截取逗号后的值
substr(a.str, instr(a.str, ',' , -1, 1)+1, length(a.str))

2. 其他

之前遭遇一个10g版本的Oracle,Oracle 10g是没有wm_concat()函数的,截取后如何进行合并呢?

left join (
    select b.openaccountid,b.dvpname,(select rtrim(xmlagg(xmlparse(content a.name||',' wellformed)).getstringval(),',')
    from sirm_enum a where a.catalog = 'PLM' and a.type = 'reserveseal' and a.value in (
        select regexp_substr((b.reserveseal),'[^,]+',1,level) from dual 
        connect by level<=length((b.reserveseal)) - length(replace((b.reserveseal),',',''))+1
    )) bs from plm_openaccountinfo b
) t9 on t2.objid = t9.openaccountid

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值