Това не е CASE
трябва да има повече от един, WHEN...THEN
, той трябва да обработва всички данни, които му давате.
Ако премахнете една от клаузите, ще оставите дупка. напр.
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
END
WHERE buildFK = 1;
С този израз за актуализиране, ако parkFK
е 2, тогава актуализацията е неуспешна, защото CASE не може да се справи с въвеждането.
Можете или да ограничите изходните си данни, като добавите друг ред към клаузата where (напр. AND partFK in (1,2)
), или можете да добавите ELSE
към случайния израз.
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
WHEN partFK = 2 THEN 8
ELSE 12
END
WHERE buildFK = 1;
Въпреки това, въз основа на SQL израза, който сте показали, вероятно има по-добър начин. Предполага се, че partFK е външен ключ към някаква друга таблица. Можете ли да изтеглите стойността за quantity
от там?