求下面问题的SQL语句
现在有二个表,A(a,b) B(a,c)
A表里面,a和b是一对多的关系
B表里面,a和c是一对一的关系假设现在,查询A表的一个a的数据得出的结果是:
a b
-----------
a1 b1
a1 b2
a1 b3
a1 b4
查询B表得出的数据是
a c
----------
a1 c1我现在想要得到的结果是
a d c
-----------------------
a1 b1,b2,b3,b4 c1应该怎么写SQL语句?
现在有二个表,A(a,b) B(a,c)
A表里面,a和b是一对多的关系
B表里面,a和c是一对一的关系假设现在,查询A表的一个a的数据得出的结果是:
a b
-----------
a1 b1
a1 b2
a1 b3
a1 b4
查询B表得出的数据是
a c
----------
a1 c1我现在想要得到的结果是
a d c
-----------------------
a1 b1,b2,b3,b4 c1应该怎么写SQL语句?
create or replace function fun_test(
A1 varchar2(10)
)
return varchar2(100)
as
cursor cur_test is
select a,b from A where a = A1;
Aresult varchar2(100);
begin
for rec_test in cur_test loop
AResult := AREsult || rec_test.b||',';
end loop;
return AResult ;
end;--然后可以使用如下查询语句获得结果
select a,fun_test(a),c from B;
select distinct cc.a,cc.aass,B.b
(
select distinct bb.a,first_value(substr(aas, 2)) over(ORDER BY substr(aas, 2) DESC) aass from
(
select aa.a, sys_connect_by_path(aa.b, ',') aas from
(
select a,b,(rownum - 1) rowstart,rownum rowend
from A
where A.a = 'a1'
)aa
start with aa.rowstart = 0
connect by prior aa.rowend = aa.rowstart
)bb
)cc,B
where cc.a = B.a
ON Oracle 9i