Можете да използвате case
изрази за това. Мисля, че логиката, която искате, е:
UPDATE users
SET
username = Param1
email = case when email is not null then Param2 end,
password = case when password is not null then Param3 end
WHERE id = Param4;
Или ако искате да актуализирате имейл и парола, ако и двете не са null
след това:
UPDATE users
SET
username = Param1
email = case when email is not null and password is not null then Param2 end,
password = case when email is not null and password is not null then Param3 end
WHERE id = Param4;
Сега въпросът беше актуализиран и разбирам, че искате да извършите актуализацията ако и само ако и имейл, и парола параметри не са празни низове. Така че всъщност искате филтриране . Бих формулирал това като:
UPDATE users
SET username = Param1, email = Param2, password = Param3
WHERE id = Param4 and Param2 <> '' and Param3 <> ''
Или ако искате да разделите логиката за двата параметъра:
UPDATE users
SET
username = Param1,
email = case when Param2 <> '' then Param2 else email end,
password = case when Param3 <> '' then Param3 else password end
WHERE id = Param4;