有张表的某个字段,字段内容是1,2,3,4这种样式的,我的需求是取出这个字段的所有值,对每条数据进行改装,改装后变成1娃哈哈,2阿里巴巴,3腾讯,4今日头条这种样式的,也就是添加上1234分别对应的实际意义,这个sql该怎么写,还烦请各位大婶帮帮我。不能更新表,要用select的
column xxx
1,2
1,2,3,4
4,5,6,,7
变成
column yyy
1娃哈哈,2阿里巴巴
1娃哈哈,2阿里巴巴,3腾讯,4今日头条
4今日头条,5暴走漫画,6台积电,7微软
60 elsif r.n4=6
61 then dbms_output.put(r.n4||'台积电, ');
62 elsif r.n4=7
63 then dbms_output.put(r.n4||'微软, ');
64 end if;
65 dbms_output.put_line('');
66 end loop;
67 end;
68 /
1哇哈哈, 2阿里巴巴,
1哇哈哈, 2阿里巴巴, 3腾讯, 4今日头条,
4今日头条, 5暴走漫画, 6台积电, 7微软,
PL/SQL procedure successfully completed.
scott@TEST>select * from t2;
N1 N2 N3 N4
---------- ---------- ---------- ----------
1 2
1 2 3 4
4 5 6 7
scott@TEST>
刚刚学oracle 写的不太好,代码很长 如果数据量大 那么效率就很低
@6点32分: 这个sql不完整啊,你的思路是循环遍历每条数据进行判断赋值么?
其实也不用这么麻烦 后来用decode函数就很容易实现了