¿ Cuando id_tecnico no sea nulo que resultado esperas en tu consulta ?. Puesto que tu
case no lo contempla, por lo tanto no va a dar ningún resultado.
En tu consulta solo devuelves un resultado cuando id_tecnico es nulo. Si esto no es lo que realmente quieres, entonces tienes que añadir un
else a la construcción
case.
NOTA: Por cierto, ¿ esta consulta funciona de verdad ?. Esto de poner un campo en el resultado y una función de agregado sobre ese mismo campo, no lo veo nada claro. Una subconsulta para obtener la función de agregado (
max) sería mucho mejor, en mi opinión.
¿ Esto es lo que quieres ?
Código SQL
[-]select
case when id_tecnico is null then
(select coalesce(max(id_tecnico),1) from staff_tenico)
else
id_tecnico
end as chave
from staff_tecnico
Saludos.