我有两个表要合并。
表1包含许多行,下面是几个
col1 col2 col3 col4
val1 val2 val3 val4
val1 val2 val3 val5
val1 val2 val3 val6
valx valy valz val4
valx valy valz val5
(val *都是字符串)
表2包含独特的行(约1000行) - col1 col2 col3 col4
val1 val2 val3 -
valx valy valz -
vala valy valz -
我想合并这两个表,表2如下 -
col1 col2 col3 col4
val1 val2 val3 val4,val5,val6
valx valy valz val4,val5
vala valy valz -
表2中的Foreach行,我想找到col4表1的唯一值并将它们连接起来
答案 0 :(得分:5)
您可以使用Table1
,
SELECT col1,
col2,
col3,
listagg(col4, ',') within GROUP(
ORDER BY col4) AS col4
FROM agg_test
GROUP BY col1,
col2,
col3;
您可以将结果显示为:
col1 col2 col3 col4
______________________________________
val1 val2 val3 val4,val5,val6
valx valy valz val4,val5
答案 1 :(得分:0)
您要求的是table2中名为col4的多值列。 Oracle不支持多值列。你可以做的是创建另一个包含table2外键的列,并在那里保存你的多值数据。
例如
Table 3
table2_id value
1 val4
1 val5
1 val6
2 val4
2 val5