Je to to, co chcete?
select coalesce(cast(id as varchar(255)), '')
from #v;
Musíte převést celý výsledný sloupec do jediného sloupce. Pokud chcete prázdnou hodnotu, pak je typem nějaký znakový řetězec.
Ve vašich příkladech else id
znamená, že výsledek z case
je celé číslo, proto dostáváte buď 0
nebo NULL
.