我需要在SQL语句用函数做处理,在代码里做判断处理太麻烦,不方便
解决方案 »
- 插入新表出错,在线等!
- 头痛,Oracle控制台可以连接,程序无法连接
- 服务器是windows2003,装了Oracle9i,隔一夜早晨来就自动断开了,而且客户端连不上,必须重启服务器主机!这是为什么?
- 多结果返回
- 有没有压缩包可用在oracle8i下?
- 在本地计算机无法启动OracleDBConsoleorcl服务
- 部署问题:Oracle 10.2.0
- 客户端连接时报TNS-12560错误,重启实例可以解决,但这个错误反复出现,什么原因?
- 请教大家一个直接插入日期型数据的一个问题,可能很多人也一样迷惑这块!
- SQL语句错误吗?
- 求助:将搜索结果作为字段名从另一张表中提取数据相关数据
- oracle分组&&字符串
先 len(str)-len(replace,',','') 算出一共几个逗号
然后 loop
用substr(currlen,currlen+2*i)。
s1 := ','||'01,02,03'||',';
for c in select * from B where s1 like '%,'||vertype||',%'
loop
s1 := replace(s1,','||c.vertype||',' , ','||c.vervalue||',');
end loop;
s1 := substr(s1, 2, length(s1)-2);
表A有一个字段vertype,可以为空,有值的话是以01,02(数字间以逗号分隔)形式存储。
表B有字段vertype,vervalue。对应01:手机 ,02:电脑
我希望在对A表做查询的时候,把vertype的对应的中文名称显示出来,如果vertype为空,那么也是的中文名称为空,如果有值,比如为01,02,那么需要显示为:手机,电脑。
=============================这个函数怎么写?
在线等,还望各位大神给予指点啊
s1 varchar2(128);
begin
s1 := ','||s0||','; --',01,02,03,'; 加逗号保证分隔
for c in select * from B where s1 like '%,'||vertype||',%'
loop
--这么麻烦的替换是为了保证顺序,否则按照楼上的WM_CONCAT就直接出来了。
s1 := replace(s1,','||c.vertype||',' , ','||c.vervalue||',');
end loop;
s1 := substr(s1, 2, length(s1)-2); --去除两端逗号
return s1;
end f;select vertype, f(vertype) from A;