oracle 中 union 用法是将多个具有相同结构的查询结果集合并成一个单一结果集。该操作符会删除重复的记录,除非使用 union all,后者会合并所有记录,包括重复的记录。
Oracle 中 UNION 用法
UNION 是 Oracle 中用于将多个查询结果集组合成一个单一结果集的 SQL 操作符。它用于合并具有相同结构(列名和数据类型)的表或查询结果。
语法:
<code>SELECT ... UNION SELECT ... UNION ...</code>
用法:
-
合并相同结构的表:
<code>SELECT * FROM table1 UNION SELECT * FROM table2;</code>
-
合并不同的查询:
<code>SELECT name, age FROM students UNION SELECT name, NULL AS age FROM teachers;</code>
注意:
- 只有具有相同数量和数据类型的列才能合并。
- UNION 会删除重复的记录,除非使用 UNION ALL。
- UNION ALL 会将所有记录合并,包括重复的记录。
示例:
下表包含两个表:
table1
id | name | age |
---|---|---|
1 | John | 20 |
2 | Mary | 25 |
table2
id | name | job |
---|---|---|
3 | Bob | teacher |
4 | Alice | student |
使用 UNION,我们可以合并这两个表:
<code>SELECT * FROM table1 UNION SELECT id, name, NULL AS job FROM table2;</code>
结果:
id | name | age | job |
---|---|---|---|
1 | John | 20 | null |
2 | Mary | 25 | null |
3 | Bob | null | teacher |
4 | Alice | null | student |