Аналитическая функция может помочь:
SQL> with test (name, hire_date) as
2 (select 'Michael', date '2010-01-11' from dual union all
3 select 'Eugene' , date '2018-12-20' from dual
4 )
5 select name,
6 hire_date,
7 case when rank() over (order by hire_date desc) = 1 then '*' else null end maxdate
8 from test;
NAME HIRE_DATE MAXDATE
------- ---------- -------
Eugene 20-12-2018 *
Michael 11-01-2010
SQL>
Еще одна опция, без аналитической функции:
SQL> with test (name, hire_date) as
2 (select 'Michael', date '2010-01-11' from dual union all
3 select 'Eugene' , date '2018-12-20' from dual
4 ),
5 maxdate as
6 (select max(hire_date) max_hire_date
7 from test
8 )
9 select t.name,
10 t.hire_date,
11 case when t.hire_date = m.max_hire_date then '*' else null end maxdate
12 from test t cross join maxdate m;
NAME HIRE_DATE MAXDATE
------- ---------- --------
Michael 11-01-2010
Eugene 20-12-2018 *
SQL>