replace wm_contact的问题

本文介绍了一种使用SQL语句解决数据处理中常见问题的方法,包括如何将多个字符串拼接为一个,并解决了表中列数据出现乱码的问题。通过实际案例展示了如何利用SQL语句进行高效的数据更新。


grade | name
----------------
A XX
A XY
A YY
B aa
B bb


如何得出下表
grade | name
----------------
A XX;XY;YY
B aa;bb
SQL code
with t as( select 'A' grade,'XX'name from dual union all select 'A','XY' from dual union all select 'A','YY' from dual union all select 'B','aa' from dual union all select 'B','bb' from dual ) select grade,replace(wm_concat(name),',',';') name from t group by grade; GRADE NAME ----- -------------------------------------------------------------------------------- A XX;XY;YY B aa;bb
表 t1 中有这样的一列数据,出现了问题,本来应该是编码拼接的字符串,有些数据成了汉字
SQL code
con test1,test2,test3 test1,测试2 test1,测试3,测试4 测试1,测试2,测试4

表 t2 是一个参数表
SQL code
id name test1 测试1 test2 测试2 test3 测试3 test4 测试4

如果要把表t1中的列con更新成正常的数据,要怎么做呢?
正常的数据要是这样的:
SQL code
con test1,test2,test3 test1,test2 test1,test3,test4 test1,test2,test4
SQL code :
declare
c_update sys_refcursor;
begin
for c_update in (select * from t2)
loop
update t1
set con=replace(con,c_update.id,c_update.name);
end loop;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值