Prueba reemplazar el segundo case por:
Código:
Coalesce(RTRIM(padre2.Nombre)+' '+RTRIM(padre1.Nombre)+' subsp. '+RTRIM(tax.Nombre),
RTRIM(padre1.Nombre)+' '+RTRIM(tax.Nombre),
RTRIM(tax.Nombre)
)
Coalesce prueba de item en item hasta que encuentra uno NO nulo. Es decir, si padre2 es nulo[1] busca padre1[1], y si no, remata con tax.Nombre[2]
[1] En realidad es toda la sentencia de concatenación, pero con que este sea nulo provoca que se haga nula toda la concatenación
[2] Que podemos asumir, nunca será nulo.
Espero te sirva.