2015-07-10 56 views
0

我想从第二条select语句中提取所有列,并将它放在我的第一条语句的所有列的右侧。我需要结合几条select语句的帮助

我试过Unionjoin命令没有运气。 当我使用这些,他们只是有我想从我的第一个选择声明。

这是我有的基本代码。

Select * from MTG_TREND where LINEID='A2' end; 

Select * from MTG_TREND where LINEID='B2' 

所有其他列是相同的。

+0

如何尝试UNION ALL? – Maverick

+0

你的意思是你想要col1,col2,... col1,col2,...?如果两个表中的行数不同,该怎么办? – jarlh

+0

您需要合并这些表格,但由于您不能使用相同名称的列,因此您需要重新命名起始者的列。你在使用什么样的SQL? – Reeza

回答

0
Select t1.*,t2.* from MTG_TREND t1 
left join (
      Select * from MTG_TREND where LINEID='B2' 
) as t2 
on t1.primarykey=t2.primarykey 
where t1.LINEID='A2' 
+0

感谢这看起来不错!尝试一下 –

+0

我无法得到这个工作我缺少一个表达式。 –

+0

不幸的是,我不是一个Oracle开发人员......我完全不能将我的sql服务器的答案转换成Oracle语句..但我确信我的简单逻辑如果被转换为oracle将给你所需的输出没有任何支点。 –

0

注意: - 确保您在两个SELECT语句中匹配相同数量的列。 - 要记住的另一件事是你必须有相同的匹配列(数据类型)。 - 如果有一些不存在的列是表,那么只需将该列定义为null,以便可以从另一个select语句的输出中获取它。

Select col1, col2, col3,...... from MTG_TREND where LINEID='A2' 
    UNION ALL  
Select col1, col2, col3,...... from MTG_TREND where LINEID='B2' 
+0

我认为这是行不通的,因为...... OP需要从我的第二条语句中拉出所有列并将其放在最右边......最后一个字是最重要的.. –

+0

如果是这种情况,输出之后你从联盟所有你可以枢轴得到你的输出 – Maverick

+0

我正在使用sql 10G随着甲骨文和我的问题与联盟所有是它只需要第一个命令你怎么枢轴? –