我有两个要合并的表,如下所示:
C1 C2 V1 V2
1 A 3 5
2 B 4 6
我想将第二个表中的所有行追加到第一个表中的每一行。 我想实现一些链接:
C1 C2 C3 C4 C5 C6
1 A 3 5 4 6
2 B 3 5 4 6
可以在OracleDB中完成吗? 或者我应该进行两次查询并将其合并到我的代码中。
答案 0 :(得分:0)
似乎你想要 window 这样的功能
select min(c1) over () c1, min(c2) over () c2, max(c2) over () c3
from table t;
答案 1 :(得分:0)
select t1.*, t2.*
from t1 cross join
(select max(case when seqnum = 1 then v1 end) as v1_1,
max(case when seqnum = 1 then v2 end) as v2_1,
max(case when seqnum = 2 then v1 end) as v1_2,
max(case when seqnum = 2 then v2 end) as v2_2
from (select t2.*, row_number() over (order by null) as seqnum
from t2
) t2
) t2;
您可以手动将其扩展到更多行。
如果您有不确定的行数,则无法使用简单的SQL查询执行所需的操作。 SELECT
语句具有固定的行集。您可以使用动态SQL(execute immediate
)执行您想要的操作。
或者,您可能只想对table2
值使用另一种表示形式,例如JSON,XML或嵌套表。