我的要求是使用' Y'更新列。如果满足一系列条件或符合N' N'我想在同一个查询中执行此操作。
例如:
CREATE TABLE TAB1 (COL1 INT, COL2 INT);
CREATE TABLE TAB2 (COL1 INT);
INSERT INTO TAB1 VALUES(1, 3);
INSERT INTO TAB1 VALUES(2, 3);
INSERT INTO TAB2 VALUES(1);
INSERT INTO TAB2 VALUES(1);
我想用' Y'来更新TAB1的COL2。如果TAB1.COL1与TAB2.COL1或COL2匹配,则应使用' N'进行更新。这当然是一个简单的例子,实际要求要复杂得多。
答案 0 :(得分:1)
编辑:更正了我更新0的答案。
假设Y为1,N为0(因为你说COL2是INT)
UPDATE TAB1 T1
SET T1.COL2 =
CASE WHEN EXISTS(SELECT 1 FROM TAB2 T2 WHERE T2.COL1 = T1.COL1) THEN 1
ELSE 0
END;
Here是SQLFiddle。