Звучит так, как будто вы ищете условное UNION:
select id, name, date
from the_table
union all
select 0, '', null
where not exists (select * from the_table);
Вторая часть объединения возвращает постоянные значения, но только если the_table
не содержит строк.