【发布时间】:2016-04-01 07:42:59
【问题描述】:
我有 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;
我收到如下错误:此处不允许使用群组功能
如何给listagg参数一个条件,因为我需要listagg中的数据?
【问题讨论】: