Update 写法

Update 的写法
CREATE TABLE T(pk INT NOT NULL PRIMARY KEY,c1 INT);
CREATE TABLE S(pk INT NOT NULL PRIMARY KEY,c1 INT);

DB2
UPDATE T SET c1 = (SELECT c1 FROM S WHERE S.pk = T.pk) WHERE pk IN (SELECT pk FROM S);

IBM Informix/MS SQL Server

UPDATE T SET c1 = S.c1 FROM T, S WHERE T.pk = S.pk;

也可以使用Merge
MERGE INTO T USING S ON T.pk = S.pk
WHEN MATCHED THEN UPDATE SET c1 = S.c1;

Upinsert方法

Standard pre SQL4 (one way of many)

FOR m AS SELECT T.pk tpk, S.pk spk, S.c1
FROM T RIGHT JOIN S ON T.pk = S.pk DO
IF m.tpk IS NULL THEN
INSERT INTO T VALUES(m.spk, m.c1);
ELSE
UPDATE T SET c1 = m.c1 WHERE pk = tpk;
END IF;
END FOR;


MERGE INTO T USING S ON T.pk = S.pk
WHEN MATCHED THEN UPDATE SET c1 = S.c1
WHEN NOT MATCHED THEN INSERT VALUES(pk, c1);

MERGE INTO T USING (VALUES(1, 2)) AS S(pk, c1)
ON S.pk = T.pk
WHEN MATCHED THEN UPDATE SET c1 = S.c1
WHEN NOT MATCHED THEN INSERT VALUES (pk, c1)


请使用浏览器的分享功能分享到微信等