ordem condicional pode ser executada com
CASE
, como aqui:select *
from test
order by
flag
, case when flag then date end desc
, case when not flag then date end asc
CASE
, como aqui:select *
from test
order by
flag
, case when flag then date end desc
, case when not flag then date end asc