Hola
El max dentro del case no esta bien creo
debes hacer una select para obtenerlo
No se exactamente lo que pretendes porque parece que haces un group by
y si hay valor nulo que coja el maximo valor del campo con lo que el group by te devolveria dos valores iguales el max y el null que lo convertirias en max
Haces coalesce del max por si es nulo eso corresponderia a que en toda la tabla el campo tiene valor nulo .
Si lo que quieres es poner el nulo a max+1 yo haria
Código SQL
[-]
select case id_tecnico when null then coalesce(select max(id_tecnico)+1 from staff_tecnico,1) end chavefrom staff_tecnicogroup by id_tecnico
No se si te habre ayudado pero lo que si puedes tener claro es que case funciona perfectamente y el error esta en que no lo construyes bien
Saludos