Oracle多个查询结果合并列的方法详解(附源代码)
在Oracle中,可以使用UNION ALL
操作符来合并多个查询结果,并且保留所有的列。如果查询结果列数量相同,可以直接使用UNION ALL
。如果列数不同,则需要使用SELECT
语句来调整列数或使用NULL
来补全不同的列。
以下是一个简单的例子,演示如何使用UNION ALL
来合并两个查询结果:
-- 假设有两个表table1和table2,它们都有两列:col1和col2
-- 第一个查询
SELECT col1, col2 FROM table1
-- 第二个查询
UNION ALL
SELECT col1, col2 FROM table2;
如果第一个查询返回的列数多于第二个查询,可以这样做:
-- 第一个查询
SELECT col1, col2, col3 FROM table1
-- 第二个查询,使用NULL补全缺失的列
UNION ALL
SELECT col1, col2, NULL FROM table2;
反之亦然,如果第二个查询返回的列数多于第一个查询,同样可以通过NULL
来补全:
-- 第一个查询,使用NULL补全缺失的列
SELECT col1, col2, NULL FROM table1
-- 第二个查询
UNION ALL
SELECT col1, col2, col3 FROM table2;
请注意,UNION ALL
会合并所有的结果,包括重复的行。如果想要去除重复的行,可以使用UNION
代替UNION ALL
,但UNION
会有额外的排序和去重的开销。
评论已关闭