UNION操作符用于合并两个或多个SELECT语句的结果集,并且默认情况下会去除重复的行。要使用UNION,请遵循以下步骤:
确保列的数据类型和顺序相同:
所有SELECT语句中的列必须具有相同的数据类型和顺序。
使用UNION ALL保留所有行:
如果你不需要去除重复行,可以使用UNION ALL来提高查询性能。
为每个SELECT语句指定别名:
这可以简化查询并使其更易于阅读。
处理空值:
如果某个SELECT语句的某列包含空值,那么在结果集中该列将显示为NULL。
优化查询性能:
可以通过调整索引、优化查询逻辑、减少结果集大小等方式来优化查询性能。
```sql
SELECT column_name1, column_name2
FROM table1
UNION
SELECT column_name1, column_name2
FROM table2;
```
在这个示例中,我们从两个表(table1和table2)中选择相同的列(column_name1和column_name2),并使用UNION将结果合并为一个结果集。如果需要保留重复行,可以省略UNION关键字,直接使用UNION ALL。
请注意,在使用UNION时,确保所有SELECT语句中的列具有相同的数据类型和顺序,否则Oracle将无法正确合并结果集。此外,可以在每个SELECT语句中使用别名来简化查询,并在ORDER BY子句中根据第一个SELECT语句中使用的字段名来引用该字段。