大哥:只用一条SQL语句如何实现如下操作?有表X(a,b,c,d) 其中a,b为主键
现有数据要更新X,
当X中存在主键一样的记录时,就UPDATE
否则就INSERT例:
X的内容a b c d
---------------------
广州 深圳 30 1000若有数据
(广州 深圳 99 9999)
(广州 北京 88 8888)更新后X的内容为:
a b c d
---------------------
广州 深圳 99 9999
广州 北京 88 8888不写太多的程序,只用一条SQL语句如何实现以上操作?谢谢!!!!!!!!!
现有数据要更新X,
当X中存在主键一样的记录时,就UPDATE
否则就INSERT例:
X的内容a b c d
---------------------
广州 深圳 30 1000若有数据
(广州 深圳 99 9999)
(广州 北京 88 8888)更新后X的内容为:
a b c d
---------------------
广州 深圳 99 9999
广州 北京 88 8888不写太多的程序,只用一条SQL语句如何实现以上操作?谢谢!!!!!!!!!
MERGE INTO X
USING (SELECT '广州' as a, '深圳' as b, 99 as c, 9999 as d from dual
union SELECT '广州' as a, '北京 as b, 88 as c, 8888 as d from dual ) S
ON (X.a = S.a and X.b = S.b)
WHEN MATCHED THEN UPDATE SET X.c = S.c, X.d = S.d
WHEN NOT MATCHED THEN INSERT (X.a,X.b,X.c,X.d)
VALUES (S.a,S.b,S.c,S.d)