将B表结果插入A表,如果A存在则将A中的一个字段值加1,不存在则插入新纪录
TableA
(
ID NUMBER(13) not null,
STATE NUMBER(4) not null
VALUE NUMBER(4) not null
)
ID和State是主键
TableB
(
ID NUMBER(13) not null,
STATE NUMBER(4) not null,
..
..
..
)
ID和state是主键
我需要查出表B中的记录, 如果A中ID和State存在则直接将 A中对应记录的 Value加1,如果不存在则插入一条新的记录到A,
怎么写语句呢?
例如:
A有3条记录
1,2, 1
2,1, 1
3,1, 1
B有4条记录
1, 2, ....
2, 1, .....
4, 4, .....
4, 1, ....
那么我执行后,A表应该变为
1,2, 2
2,1, 2
3,1, 1
4, 4, 1
4, 1, 1
------解决方案--------------------MERGE INTO tableA A
USING (与tableB的匹配条件) B
ON (A.XX=B.XX)
WHEN MATCHED THEN
UPDATE
SET A.VALUE= A.VALUE+1
WHEN NOT MATCHED THEN
INSERT
(FIELD1,..)
VALUES
(1,...);