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
UNIONSELECT 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 ALLSELECT 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操作符是将两个表的内容加和在一起的有效方法。只需要确保两个表的结构相同,就可以轻松地将它们的内容合并在一起。