2017-08-09 73 views
1

假设您有两个查询。查询一个结果:Oracle SQL:合并选择彼此之间的结果

| A | B | C | 
    +---+---+---+ 
    | 1 | 5 | 9 | 
    | 2 | 6 | 10| 

和查询结果:

| A | B | C | 
    +---+---+---+ 
    | 3 | 7 | 11| 
    | 4 | 8 | 12| 

是否有可能执行的方法的语句来获得:

| A | B | C | 
    +---+---+---+ 
    | 1 | 5 | 9 | 
    | 2 | 6 | 10| 
    | 3 | 7 | 11| 
    | 4 | 8 | 12| 

会更简单的解决方案是加入他们?或者如果涉及使用';'分开这两个选择我得到一个错误使用它。

另外,我还使用了语句间UNIONUNION ALL尝试,但给出

ORA-00933:SQL命令不能正确地结束

这是Excel的微软查询正在做。

回答

1

使用UNION语句。

SELECT * FROM queryA 
UNION ALL 
SELECT * FROM queryB 

WHERE子句保留每个查询,但ORDER BY移动到最后。

当您使用UNION时,最顶端查询中列的名称或别名成为整个列的别名。所以最后,你可以写一些类似Order By A的地方,其中A是你的第一个列名。确保您没有在最上面的查询以外的查询中指定别名。