我有2张桌子
表1
CUST Track
1 100
2 100
3 200
4 200
表2
Track Data
100 A
100 B
100 C
100 D
200 X
200 Y
200 Z
200 P
输出
CUST Track Data
1 100 A
B
C
D
2 100 A
B
C
D
3 200 X
Y
Z
P
3 200 X
Y
Z
P
我想要CUST,在输出和数据中只跟踪一次我希望所有记录按照上面的输出。
答案 0 :(得分:0)
我建议你将所有数据放在一行中,如下所示:
CUST Track Data
1 100 A,B,C,D
这很容易制作:
select t1.custid, t2.track, listagg(data, ',') within group (order by data) as data
from table1 t1 join
table2 t2
on t1.track = t2.track
group by t1.custid, t2.track;
此格式不是必需的。可以生成所需的输出。但是,在SQL上下文中,该输出相当奇怪,因为它具有行间依赖性。通常,SQL表或结果集中的行表示某些内容,而不引用"相邻的"行。