Oracle 使用MERGE合并两个表
我正试图垂直地组合两张桌子Oracle 使用MERGE合并两个表,oracle,join,merge,Oracle,Join,Merge,我正试图垂直地组合两张桌子 ID Salary A 50 B 100 表A ID Salary A 50 B 100 表B ID Salary A 50
ID Salary
A 50
B 100
表A
ID Salary
A 50
B 100
表B
ID Salary
A 50
B 100
ID Salary
C 50
D 200
我正在找一张看起来像
ID Salary
A 50
B 100
ID Salary
A 50
B 100
C 50
D 200
我用的是:
ID Salary
A 50
B 100
merge into table_a a using (
select id, salary from table B
) b
on (a.id = b.id);
这不起作用。使用Union或Union all
ID Salary
A 50
B 100
从表A中选择Id、薪资
ID Salary
A 50
B 100
联合
ID Salary
A 50
B 100
从表B中选择Id、薪资使用联合或联合所有
ID Salary
A 50
B 100
从表A中选择Id、薪资
ID Salary
A 50
B 100
联合
ID Salary
A 50
B 100
从表B中选择Id,Salary您的
合并
语法不正确。见下文。阅读有关合并的更多信息
ID Salary
A 50
B 100
您的
Merge
语法不正确。见下文。阅读有关合并的更多信息
ID Salary
A 50
B 100
我在这里实现了一些步骤,您可以按照每个步骤进行操作
ID Salary
A 50
B 100
步骤1:我创建了两个表“table_a”和“table_b”
ID Salary
A 50
B 100
create table table_a(ID varchar2(10),salary number(10));
create table table_b(ID varchar2(10),salary number(10));
步骤2:用数据填充它们:
ID Salary
A 50
B 100
insert into table_a(id,salary) values ('A',50);
insert into table_a(id,salary) values ('B',100);
insert into table_b(id,salary) values ('C',50);
insert into table_b(id,salary) values ('D',200);
第三步:在这里使用merge语句,注意必须使用语句“when matched then”
ID Salary
A 50
B 100
merge into table_a a
using table_b b
on (a.id = b.id)
when matched then
update set a.salary = b.salary
when not matched then
insert (id, salary) values (b.id, b.salary);
我在这里实现了一些步骤,您可以按照每个步骤进行操作
ID Salary
A 50
B 100
步骤1:我创建了两个表“table_a”和“table_b”
ID Salary
A 50
B 100
create table table_a(ID varchar2(10),salary number(10));
create table table_b(ID varchar2(10),salary number(10));
步骤2:用数据填充它们:
ID Salary
A 50
B 100
insert into table_a(id,salary) values ('A',50);
insert into table_a(id,salary) values ('B',100);
insert into table_b(id,salary) values ('C',50);
insert into table_b(id,salary) values ('D',200);
第三步:在这里使用merge语句,注意必须使用语句“when matched then”
ID Salary
A 50
B 100
merge into table_a a
using table_b b
on (a.id = b.id)
when matched then
update set a.salary = b.salary
when not matched then
insert (id, salary) values (b.id, b.salary);
第一件事:这不是pl/sql。第二件事:正如XING所指出的,merge语句缺少更多选项。第三件事:您只想查询它,或者确实要合并数据?如果您想查询,请使用union运算符,正如SMA所写。
来自表B
看起来是错误的。这应该是来自表B
?(加上其他人提到的缺少的插入
/更新
部分。)第一件事:这不是pl/sql。第二件事:正如XING所指出的,merge语句缺少更多选项。第三件事:您只想查询它,或者确实要合并数据?如果您想查询,请使用union运算符,正如SMA所写。来自表B
看起来是错误的。这应该是来自表B
?(加上其他人提到的缺少的插入
/更新
部分。)