solidworks mac:一个SQL查询的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 23:18:00
假设有表test,有两字段id,value
表中值如下:
id value
1 aa
1 bb
1 cc
2 dd
2 ee
其中以上记录即按id分组的记录数据不定
现在如何书写SQL使得查询结果如下:
id value
1 aa,bb,cc
2 dd,ee
请尽量用Oracle中的SQL语法书写
其实就是将id分组的数据联合起来,至于分隔符倒并不重要
我想用一个SQL语句方式取得结果,用游标的方式我已经实现
请教了一个同事,由于本人不能回答,新开木谷将军这个号,将结果贴上来大家一起研究。
谢谢大家的回答,还是采用游标的方式容易处理些。

你这问题呢,我试了很多方法,其实还是用光标(游标)最好实现

如果用单用SELECT语句呢,问题最关键的地方在按id分组的记录数据不定,而且现有的每个分组里的行数也应该是不定的吧,所以,这么多不确定因素,很难单用一个SELECT语句实现

我写了一个批量,但其实是模拟游标的工作方法,不如直接用游标方便

如果用表的连接呢,根据这么多的不确定因素,真的很麻烦。

其实我想SQL里定义的游标就是用来解决你这类问题的最好方法,不用想别的麻烦的答案了

select value from test group by id

楼上的不对,查出来跟楼主问的题目一个样!错了~我确定。
楼主你好好看看,显示结果的确是你要的那样子吗?

select value from test where id= 1
然后用array 就可以了

没有这种语句把

试试,很麻烦

自定义函数
CREATE OR REPLACE FUNCTION test (
pid varchar2
)
return varchar2
is
cursor tabcur is select value from tab
where id=pid;
dummy tabcur%rowtype;
pvalue varchar2(32);
pTemp varchar2(64);
begin
pvalue:='';
pTemp:='';
open tabcur;
fetch tabcur into dummy;
while tabcur%found
loop
pTemp:=dummy.value;
fetch tabcur into dummy;
pvalue:=pTemp||';';
end loop;
return pvalue;
end;

select distinct id,test(id) from tab;

没测试