Vereinigen Sie zwei Tabellen mit unterschiedlicher Spaltenanzahl
P粉879517403
2023-08-24 18:54:05
<p>Ich habe zwei Tabellen (Tabelle A und Tabelle B). </p>
<p>Die beiden Tabellen haben eine unterschiedliche Anzahl von Spalten – vorausgesetzt, Tabelle A hat mehr Spalten. </p>
<p>Wie kann ich diese beiden Tabellen zusammenführen und Nullwerte für Spalten erhalten, die Tabelle B nicht hat? </p>
我来到这里并按照上面的答案操作。但是数据类型的顺序不匹配导致了一个错误。下面来自另一个答案的描述会很有用。
上面的结果与您的表中的列顺序相同吗?因为Oracle在列顺序上很严格。下面的示例会产生一个错误:
ORA-01790: 表达式必须具有与相应表达式相同的数据类型
正如您所看到的,错误的根本原因在于通过使用*作为列列表指定符来暗示的列顺序不匹配。通过显式输入列列表,可以轻松避免这种类型的错误:
select col_a, col_b, col_c from test1_1790 union all select col_a, col_b, col_c from test2_1790; 这种错误更常见的情况是当您在SELECT列表中无意中交换(或移动)两个或多个列时:
或者,如果上述方法不能解决您的问题,那么如何在列中创建一个别名呢,就像这样:(查询与您的查询不同,但这里的重点是如何在列中添加别名。)
对于列较少的表,可以添加额外的空列,例如: