繁体   English   中英

如何在Oracle SQL中合并(列)两个SELECT语句的输出?

[英]How to merge(columns) outputs of two SELECT statements in oracle sql?

我有两个选择查询。

第一个“选择”查询给出具有两列的输出,即。

A   B
------
1   2    
3   4    
5   6    
7   8

第二个Select查询给出给定输出,即列B和列C两列。此选择语句的列B中的所有值都与第一个选择语句的列B中的值匹配。

B   C
------
2   25    
4   50    
6   30    
8   50

现在,我需要合并以上两个Select查询的输出。

A   B   C
----------
1   2   25    
3   4   50    
5   6   30    
7   8   50

我不能使用视图来存储两个选择查询的输出。 我需要在两个选择查询中都使用列B进行合并。 但是,我不知道如何去做。

如果你已经制定了查询(不只是加入),您可以尝试使用with建设

  with 
    Query1 as ( -- <- Put your 1st Query text here 
      select A,
             B
       ...
    ),
    Query2 as ( -- <- Put your 2nd Query text here 
      select B,
             C
       ...
    )  

 select Query1.A,
        Query1.B,
        Query2.C
   from Query1, 
        Query2
  where Query1.B = Query2.B 

如果您的情况不是那么复杂 ,例如Query1和Query2实际上都是 ,比如说Table1Table2那么您可以使用一个更简单的解决方案来做得很好:

 select Table1.A,
        Table1.B,
        Table2.C 
   from Table1,
        Table2
  where Table1.B = table2.B 

考虑一下您的表格,例如具有以下字段

TableA(A ,B) , TableB(B,C)

尝试像这样使用JOIN

SELECT TableA.A , TableA.B, TableB.C
FROM TableA 
JOIN TableB ON TableA.B = TableB.B;

这可以通过使用B列上的INNER JOIN将您的第一个表连接到第二个表来完成:

SELECT  T1.A,
        T1.B,
        T2.C
  FROM  Table1 T1
    INNER JOIN Table2 T2 ON T2.B = T1.B

请注意,由于不确定它们的名称,因此我将您的第一个表Table1 (别名T1 )命名为第二个表Table2 (别名T2 )。

SELECT one.a, one.b, two.c
 FROM table1 one JOIN table2 two
 ON one.b = two.b

您可以使用加入

SELECT A.A,
   A.B,
   B.C
FROM Table1 A
INNER JOIN Table2 B ON B.B = A.B

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM