Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL分组依据与合并_Sql_Oracle - Fatal编程技术网

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或嵌套表。

请仔细阅读问题并将其通读一遍。你只有在阅读时才能理解它吗?你必须提供更多的信息来定义你的目标。显然,您希望在第一列中按分组,但第二列中应该发生什么还不清楚。