我想知道在Oracle SQL数据库中是否有可能执行这样的UPDATE操作:
UPDATE mark
SET
mark=
CASE
WHEN mark.val<= 5
THEN val*1.1
ELSE val END
WHERE mark.id_classes = classes.id_classes
AND classes.ID_subject = subject.ID_subject
AND subject.ID_subject = 5;
在这部分,SQL开发人员返回错误:
WHERE mark.id_classes = classes.id_classes
AND classes.ID_subject = subject.ID_subject
AND subject.ID_subject = 5;
那么我猜测不可能制作出如此复杂的条件,还有其他方法可以做到吗?
尝试更多类似SELECT
的条件可能有些愚蠢,但另一方面我不明白为什么它不能工作。
mark
设置为NULL
。我认为这不是原帖作者的意图。它还会不必要地更新行。 - Gordon LinoffWHERE
后面的...
的含义。 - Littlefoot