È questo che vuoi?
select coalesce(cast(id as varchar(255)), '')
from #v;
Devi trasformare l'intera colonna dei risultati in una singola colonna. Se vuoi un valore vuoto, il tipo è una sorta di stringa di caratteri.
Nei tuoi esempi, l'else id
significa che il risultato del case
è un numero intero, motivo per cui ottieni 0
o NULL
.