SQL分组依据与合并
我有两个要合并的表,如下所示:SQL分组依据与合并,sql,oracle,Sql,Oracle,我有两个要合并的表,如下所示: 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中完成吗? 或者我应该进行两个查询,并将它们合并到我的代码中。您似乎想要这样的窗口
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中完成吗?
或者我应该进行两个查询,并将它们合并到我的代码中。您似乎想要这样的窗口功能
select min(c1) over () c1, min(c2) over () c2, max(c2) over () c3
from table t;
嗯。这很奇怪。如果第二个表中有两行,则可以使用条件聚合:
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(executeimmediate
)执行您想要的操作
或者,您可能只想对
table2
值使用另一种表示法,例如JSON、XML或嵌套表。请仔细阅读问题并将其通读一遍。你只有在阅读时才能理解它吗?你必须提供更多的信息来定义你的目标。显然,您希望在第一列中按分组,但第二列中应该发生什么还不清楚。