【发布时间】:2017-02-20 12:07:53
【问题描述】:
我正在编写一个带有一些案例语句的更新查询。当大小写不满足时,它将使用 NULL 更新列。
以下是查询:
UPDATE TGT
SET C1 = CASE WHEN TGT.c2 = SRC.c2 AND SRC.C3 = 'P' THEN SRC.C1 ELSE NULL END,
C4 = CASE WHEN TGT.c5 = SRC.c5 AND SRC.C3 = 'D' THEN SRC.C4 ELSE NULL END
FROM SRC;
即使源表中存在数据,它也始终填充 NULL。
提前感谢您的帮助。
【问题讨论】:
-
此查询是否运行,没有更新任何内容,还是给出错误?
-
不,这是一个单一的查询。它更新表中的所有记录,但只有 NULL 值。
-
这是甲骨文吗?
-
这是无效的语法。您可能在子查询中有那个 CASE?如 SET C1 = (SELECT CASE ...)?
-
Oracle 和 Vetica。