orcale 两个表合并列
时间: 2024-09-15 12:05:28 浏览: 42
oracle 将多张表中的列合并到一张表中
在Oracle中合并两个表的列,如果你只是简单地想把两表的所有列并排放置,而不管是否存在匹配的数据,可以使用`UNION ALL`操作[^1]。这会返回一个结果集,其中包含了第一个`SELECT`语句的结果加上第二个`SELECT`语句的结果,但不会去除重复的行。
如果你想创建一个新的表C,包含表A和表B的所有列,即使有些列可能在某张表中不存在,可以考虑使用`UNION`而非`UNION ALL`,因为`UNION`会自动忽略缺失的列。如果还想保留所有行(包括那些在一张表中有而在另一张表中缺失的),应该使用`FULL OUTER JOIN`[^2],它会合并所有行,并在缺失的列上设置NULL值。
以下是`UNION ALL`的基本示例:
```sql
CREATE TABLE C AS
SELECT * FROM table1
UNION ALL
SELECT * FROM table2;
```
而对于`FULL OUTER JOIN`,假设有表A和表B如下:
```sql
CREATE TABLE A (id INT, name VARCHAR(255));
CREATE TABLE B (id INT, address VARCHAR(255));
-- 使用 FULL OUTER JOIN 创建新表C
CREATE TABLE C AS
SELECT A.*, B.address
FROM A
FULL OUTER JOIN B ON A.id = B.id;
```
阅读全文