我有2个选择很长,我必须把结果放在一起
结果优先选择
结果第二次选择
想要的结果
我想了解该怎么做
一般来说,每当你想扩展结果的列空间时,你就需要连接。
由于第二个结果的大小似乎只有一行,您可以简单地与原始结果交叉连接,因为大小为 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 │
└───┴─────────┘
您可以将一个查询嵌套在另一个查询的 SELECT 子句中:
SELECT Nature_Montant, Nombre_Montant,
(SELECT Nombre_Tires
FROM ...
) As Nombre_Tires,
Nombre_Montant / (SELECT Nombre_Tires
FROM ...
...
) As Pourcentage...
FROM ...
但这会慢。
由于一个查询的结果始终相同,因此更好的选择是将其作为脚本或过程运行,首先将结果放入变量中,然后在第二个查询中使用该变量。