Het is niet dat de CASE
moet meer dan één hebben, WHEN...THEN
, het is dat het alle gegevens moet verwerken die je het geeft.
Als je een van de clausules hebt verwijderd, laat je een gat achter. bijv.
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
END
WHERE buildFK = 1;
Met deze update-instructie, als parkFK
is 2, dan mislukt de update omdat de CASE de invoer niet aankan.
U kunt uw brongegevens beperken door een andere regel toe te voegen aan uw waar-clausule (bijv. AND partFK in (1,2)
), of u kunt een ELSE
. toevoegen naar de hoofdletteruitdrukking.
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
WHEN partFK = 2 THEN 8
ELSE 12
END
WHERE buildFK = 1;
Op basis van de SQL-instructie die u hebt getoond, is er echter waarschijnlijk een betere manier. Vermoedelijk is partFK een refererende sleutel naar een andere tabel. Kun je de waarde ophalen voor quantity
vanaf daar?