Oracle将两表内容加和(oracle两表想相加)

Oracle:将两表内容加和

在Oracle数据库中,有时候需要将两个表的内容加和在一起,可以使用UNION操作符实现。UNION操作符用于合并两个或多个SELECT语句的结果集,并去除重复行。

假设有两个表A和B,它们的结构和数据如下:

表A:

| id | name | age |

|—-|——-|—–|

| 1 | Tom | 20 |

| 2 | Jack | 21 |

| 3 | Alice | 22 |

表B:

| id | name | age |

|—-|——-|—–|

| 4 | Lucy | 20 |

| 5 | Mary | 21 |

| 6 | John | 22 |

要将这两个表的内容加和在一起,可以使用UNION操作符:

SELECT id, name, age FROM A
UNION
SELECT id, name, age FROM B;

这条SQL语句将返回以下结果:

| id | name | age |

|—-|——-|—–|

| 1 | Tom | 20 |

| 2 | Jack | 21 |

| 3 | Alice | 22 |

| 4 | Lucy | 20 |

| 5 | Mary | 21 |

| 6 | John | 22 |

其中,在UNION操作符之前的SELECT语句查询了表A的内容,在UNION操作符之后的SELECT语句查询了表B的内容。两个SELECT语句的结果集通过UNION操作符合并在了一起,并去除了重复行。

如果想保留重复行,可以使用UNION ALL操作符:

SELECT id, name, age FROM A
UNION ALL
SELECT id, name, age FROM B;

这条SQL语句将返回以下结果:

| id | name | age |

|—-|——-|—–|

| 1 | Tom | 20 |

| 2 | Jack | 21 |

| 3 | Alice | 22 |

| 4 | Lucy | 20 |

| 5 | Mary | 21 |

| 6 | John | 22 |

| 1 | Tom | 20 |

| 2 | Jack | 21 |

| 3 | Alice | 22 |

| 4 | Lucy | 20 |

| 5 | Mary | 21 |

| 6 | John | 22 |

可以看到,UNION ALL操作符不会去除重复行,而是将两个表的内容全部保留下来。

需要注意的是,两个表的结构必须完全一致,否则会出现错误。UNION操作符只会选取所有SELECT语句的列的并集,并将它们按照SELECT语句中的顺序排列。如果两张表的列不匹配,或者有不同的列名或列类型,那么UNION操作符将无法执行。

综上所述,UNION操作符和UNION ALL操作符是将两个表的内容加和在一起的有效方法。只需要确保两个表的结构相同,就可以轻松地将它们的内容合并在一起。


数据运维技术 » Oracle将两表内容加和(oracle两表想相加)