No es que el CASE
debe tener más de uno, WHEN...THEN
, es que debe manejar todos los datos que le des.
Si quitaste una de las cláusulas, dejas un hueco. por ejemplo
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
END
WHERE buildFK = 1;
Con esta declaración de actualización, si parkFK
es 2, entonces la actualización falla porque CASE no puede manejar la entrada.
Puede limitar sus datos de origen agregando otra línea a su cláusula where (por ejemplo, AND partFK in (1,2)
), o puede agregar un ELSE
a la expresión de caso.
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
WHEN partFK = 2 THEN 8
ELSE 12
END
WHERE buildFK = 1;
Sin embargo, según la instrucción SQL que ha mostrado, probablemente haya una mejor manera. Presumiblemente, partFK es una clave externa para alguna otra tabla. ¿Puedes obtener el valor de quantity
? de ahí?