oracle listagg支持,如何在Oracle查询上使用listagg上的条件

我有3个表:table_A,table_B和table_C . Table_A具有主键,并由table_B中的外键引用 . Table_C具有由table_B中的外键引用的主键 . 设计是这样的:

T̲a̲b̲l̲e̲_̲A̲

ID_A

TextData

T̲a̲b̲l̲e̲_̲B̲:

ID_B

ID_A

ID_C

T̲a̲b̲l̲e̲ ̲C̲:

ID_C

TextData

查询:

select a.id_a,

a.textdata,

listagg(c.textdata, ', ') within group (order by c.id_c) data_c

from table_a a

inner join table_b b on (a.id_a = b.id_a)

inner join table_c c on (b.id_c = c.id_c)

where c.textdata like :data

group by a.id_a, a.textdata;

我只是从c.textdata的一个表中获取数据,而不是从listagg中获取数据 . 如果我尝试使用此查询:

select a.id_a,

a.textdata,

listagg(c.textdata, ', ') within group (order by c.id_c) data_c

from table_a a

inner join table_b b on (a.id_a = b.id_a)

inner join table_c c on (b.id_c = c.id_c)

where listagg(c.textdata, ', ') like :data

group by a.id_a, a.textdata;

我得到一个错误: group function is not allowed here

如何给listagg参数一个条件,因为我需要来自listagg的数据?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值