Oracle ordena por diferentes condiciones

Tengo una consulta y me gustaría hacer dos tipos de orden en función de una condición.

Por ejemplo, si un campo es NULL, necesito hacer un pedido y si no es así, tengo que hacer otro pedido. Cómo puedo hacerlo ?

select *
  from table_1 t
  order by (if  t.field1 is null then
                   order by t.field2 DESC, field3 ASC
            else 
                  order by t.field4 ASC, field5 DESC)

Este es un código de muestra: quiero hacer un orden diferente (ASC / DESC y diferentes columnas), en función del valor de FIELD1

EJEMPLO

CONDICIONAL

ID FIELD1  FIELD2  FIELD3  FIELD4  FIELD5
1   1       2       3       4       5
2   NULL    6       7       8       9

DATOS

ID PARENT_ID DATA1 DATA2 DATA3
1  1         X     Y     J
2  1         Z     W     U
3  2         XY    YX    O
4  2         ZW    WZ    I

select d.*
  from data d, conditional c
 where d.parent_id = c.id
   and d.parent_id = 1
order by
       case 
           when c.field1 is null then
              data1 asc, data2 desc
           else
              data3 asc, data1 desc
       end

En este ejemplo, selecciono las filas de DATOS UNO y DOS (las filas que tienen ID principal = 1). Ahora que he tomado esta decisión, quiero ampliar las columnas DATOS en función del valor de la columna CONDICTIONAL.FIELD1. Espero que ahora esté más limpio.

Claro que esta consulta no funciona, pero esto es "lo que necesitaré".