К сожалению, SQL не позволяет использовать конструкции, подобные исключениям, для определения столбцов в наборе результатов.
Поскольку вы, похоже, используете Oracle (to_char () - это функция, специфичная для Oracle), вы можетеиспользуйте словарь данных для получения списка столбцов и динамического создания оператора SQL:
-- test data
create table test_format(pk number not null primary key, val_num number, val_text varchar2(50 char), val_date date);
insert into test_format(pk, val_num, val_text, val_date) values (1, 2, 'Test row', date '2019-10-25');
commit;
-- get SQL statement
with tab_cols as (
select
case when column_name = 'VAL_DATE' then 'to_char(' || column_name || ', ''YYYY-MM-DD hh24:mi:ss'') as ' || column_name
else column_name
end as column_name
from user_tab_cols
where table_name = 'TEST_FORMAT'
)
select 'select ' || listagg(tc.column_name, ',') within group(order by column_name) || ' from test_format' as sql
from tab_cols tc;