このクエリを試してみてください。役に立つかもしれません (ここをクリックしてクエリをテストしてください):
CREATE TABLE TEST1(
ID INT);
CREATE TABLE TEST2(
ID INT,
TXT VARCHAR2(100));
INSERT INTO TEST1 VALUES(1);
INSERT INTO TEST1 VALUES(2);
INSERT INTO TEST1 VALUES(3);
INSERT INTO TEST2 VALUES(1,'A');
INSERT INTO TEST2 VALUES(1,'B');
INSERT INTO TEST2 VALUES(2,'C');
INSERT INTO TEST2 VALUES(3,'A');
INSERT INTO TEST2 VALUES(3,'B');
INSERT INTO TEST2 VALUES(3,'C');
/* HERE IS THE QUERY!!!*/
SELECT A.ID,
(SELECT listagg(B.TXT,',' ) WITHIN GROUP (ORDER BY B.ID)
FROM TEST2 B WHERE B.ID = A.ID
) AS CONTATENATED_FIELD
FROM TEST1 A;
注: listagg は 11.X バージョンで動作します。詳細については、このリンクを参照してください。
クエリによると、次のようなものが必要になる場合があります。
select o.id,
(SELECT listagg(v.value,',' ) WITHIN GROUP (ORDER BY v.value) from values v join attributes a on v.att_id=a.att_id where a.att_id='100' and v.id=o.id)
from objects o
where o.class_id='GGzX';