oracle sql Developer - 如何将两个毫无共同点的选择的结果放在一起

问题描述 投票:0回答:2

我有2个选择很长,我必须把结果放在一起

结果优先选择

enter image description here

结果第二次选择

enter image description here

想要的结果

enter image description here

我想了解该怎么做

sql oracle
2个回答
0
投票

一般来说,每当你想扩展结果的列空间时,你就需要连接。

由于第二个结果的大小似乎只有一行,您可以简单地与原始结果交叉连接,因为大小为 1 的集合与任何集合的叉积与后者具有相同的基数。 这将产生一个结果集,其中每行都有一个额外的列,其总大小与第一个选择的总大小相同。

我手头没有 Oracle SQL,但是,在 SQLite 中(我相信逗号交叉语法是相同的),这个示例如下所示:

sqlite> SELECT a, a_count FROM foo, (SELECT COUNT(*) AS a_count FROM foo);
┌───┬─────────┐
│ a │ a_count │
├───┼─────────┤
│ 1 │ 3       │
│ 2 │ 3       │
│ 3 │ 3       │
└───┴─────────┘

0
投票

您可以将一个查询嵌套在另一个查询的 SELECT 子句中:

SELECT Nature_Montant, Nombre_Montant,
    (SELECT Nombre_Tires
     FROM ...
    ) As Nombre_Tires,
    Nombre_Montant / (SELECT Nombre_Tires
                      FROM ...
                      ...
                     ) As Pourcentage...
    
FROM ...

但这会

由于一个查询的结果始终相同,因此更好的选择是将其作为脚本或过程运行,首先将结果放入变量中,然后在第二个查询中使用该变量。

© www.soinside.com 2019 - 2024. All rights reserved.