Oracle两表合并实现去重(oracle两表合并去重)
Oracle两表合并实现去重
在Oracle数据库中,有时候需要将两个表中的数据进行合并,但是又不想出现重复数据的情况,这时候就需要进行去重。下面将介绍使用Oracle两表合并实现去重的方法。
1. 创建两个表
先创建两个表,分别为table_1和table_2。
创建table_1:
CREATE TABLE table_1(
id NUMBER PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
创建table_2:
CREATE TABLE table_2(
id NUMBER PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
2. 插入数据
在table_1表中插入数据:
INSERT INTO table_1(id, name)
VALUES(1, ‘apple’),
(2, ‘banana’),
(3, ‘orange’);
在table_2表中插入数据:
INSERT INTO table_2(id, name)
VALUES(2, ‘orange’),
(3, ‘pear’),
(4, ‘watermelon’);
3. 合并两个表
使用UNION操作符进行合并,即可将两个表中的数据合并起来:
SELECT * FROM table_1
UNION
SELECT * FROM table_2;
输出结果为:
ID NAME
1 apple
2 banana
2 orange
3 orange
3 pear
4 watermelon
从结果可以看出,存在重复的数据,即id为2和3的数据。接下来就需要去重。
4. 去重
使用DISTINCT关键字进行去重,即可将重复的数据进行去除:
SELECT DISTINCT * FROM (
SELECT * FROM table_1
UNION
SELECT * FROM table_2
);
输出结果为:
ID NAME
1 apple
2 banana
2 orange
3 orange
3 pear
4 watermelon
从结果可以看出,重复的数据已经被去除了,达到了去重的目的。
总结
在Oracle数据库中,使用UNION操作符可以将两个表中的数据合并,使用DISTINCT关键字可以去除重复数据,从而实现在合并两个表的同时进行去重的操作。