oracle以逗号拼接字符串

分类:函数知识网浏览量:1650发布于:2021-05-11 00:33:40

select decode(count(*),0,'false','true') i_f from ( select regexp_substr('2,3','\d+',1,level) s1 from dual connect by level <= (select length(regexp_replace('2,3','\d+'))+1 from dual)

你好!我猜测你是想把字段aa以逗号为界截取后放到3个变量里,然后传递到函数中,你学习一下这两个函数:substr和instr,前一个是截取字符串的,后一个是在一个字符串中找另一个字符串位置的如果对你有帮助,望采纳.

可以在table上加一个trigger,比如说你有三个字段col_a,col_b,col_c,那么设置在before insert的时候,让new.col_a =new.col_b || new.col_c

如果是两个字符串拼接 CONCAT(字符串1, 字符串2); 如果两个以上,用||号;如: 字符串1||字符串2||字符串3

之前我保存的经典的方法,你可以参考下 首先创建一张表t_al_test_sy 字段分别为: --获取截取字符串起始索引 --select instr(str_mc,',',str_count+1,1) into str_count from

oracle 中可以用connect by把字符串按都好分割:比如定义字符串:pv_no_list :='23,34,45,56'; SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) as "token" FROM DUAL CONNECT BY REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) IS NOT NULL order by 1 返回结果:TOKEN23344556

select substr('123,123456,123456789', instr('123,123456,123456789', ',', 1, 1) + 1, instr('123,123456,123456789', ',', 1, 2) - instr('123,123456,123456789', ',', 1, 1) - 1) from dual;

select b, t.ca, c.lv,instr(t.ca, ',', 1, c.lv) + 1, substr(t.ca, instr(t.ca, ',', 1, c.lv) + 1, instr(t.ca, AS cnt --以逗号分隔的字符串个数,先在原来的长度上加1 计算去除所有逗号后字符

update a表 set a表.a=(select b1.b from b表 b1,a表 a1 where b1.c=a1.c and a1.c=a表.c)但要保证在B表中C字段是唯一的才行.也就是说子查询只能返回一行数据.

可以使用||进行拼接,例如:select 'abc'||'123' from dual输出:abc123