oracle 中 union 用法是將多個(gè)具有相同結(jié)構(gòu)的查詢(xún)結(jié)果集合并成一個(gè)單一結(jié)果集。該操作符會(huì)刪除重復(fù)的記錄,除非使用 union all,后者會(huì)合并所有記錄,包括重復(fù)的記錄。
Oracle 中 UNION 用法
UNION 是 Oracle 中用于將多個(gè)查詢(xún)結(jié)果集組合成一個(gè)單一結(jié)果集的 SQL 操作符。它用于合并具有相同結(jié)構(gòu)(列名和數(shù)據(jù)類(lèi)型)的表或查詢(xún)結(jié)果。
語(yǔ)法:
<code>SELECT ... UNION SELECT ... UNION ...</code>
登錄后復(fù)制
用法:
合并相同結(jié)構(gòu)的表:
<code>SELECT * FROM table1 UNION SELECT * FROM table2;</code>
登錄后復(fù)制
合并不同的查詢(xún):
<code>SELECT name, age FROM students UNION SELECT name, NULL AS age FROM teachers;</code>
登錄后復(fù)制
注意:
只有具有相同數(shù)量和數(shù)據(jù)類(lèi)型的列才能合并。
UNION 會(huì)刪除重復(fù)的記錄,除非使用 UNION ALL。
UNION ALL 會(huì)將所有記錄合并,包括重復(fù)的記錄。
示例:
下表包含兩個(gè)表:
table1
id | name | age |
---|---|---|
1 | John | 20 |
2 | Mary | 25 |
table2
id | name | job |
---|---|---|
3 | Bob | teacher |
4 | Alice | student |
使用 UNION,我們可以合并這兩個(gè)表:
<code>SELECT * FROM table1 UNION SELECT id, name, NULL AS job FROM table2;</code>
登錄后復(fù)制
結(jié)果:
id | name | age | job |
---|---|---|---|
1 | John | 20 | null |
2 | Mary | 25 | null |
3 | Bob | null | teacher |
4 | Alice | null | student |