首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求一sql语句。有一个Oracle数据表,内容如下:该怎么处理

2012-03-30 
求一sql语句。有一个Oracle数据表,内容如下:idIMAGEID15,24219234565,24,121,3,347891011其中IMAGEID没写的

求一sql语句。有一个Oracle数据表,内容如下:
id       IMAGEID
15,24
2192
3
4
5
65,24,121,3,34
7
8
9
10
11


其中IMAGEID没写的表明该值为空。

我想统计IMAGEID中值的个数,有逗号要拆开统计。比如上面的结果应该是5、24、192、5、24、121、3、34个数的总合。(应该是8)
这样的sql语句该怎样写呀?

当然表中的记录不只是11条,会有很多,不可能一个一个地数呀。

[解决办法]
--原来这样可以 :)

--测试数据
create table ttt( id int, IMAGEID varchar2(1000));
insert into ttt values(1, '5,24 ');
insert into ttt values(2, '192 ');
insert into ttt(id) values(3);
insert into ttt(id) values(4);
insert into ttt values(5, '5,24,121,3,34 ');
--执行查询
select sum(length(IMAGEID)-length(replace(IMAGEID, ', ', ' ')) +1) sum
from ttt
where imageid is not null

--输出结果
8
[解决办法]
--这回可以了吧

create or replace procedure sp_GetCount( acount out int )
is
begin
select sum(length(IMAGEID)-length(replace(IMAGEID, ', ', ' ')) +1) into acount
from ttt
where imageid is not null
end sp_GetCount;

热点排行