Заказ Oracle по разным условиям

У меня есть запрос, и я хотел бы сделать два вида заказа на основе условия.

Например, если поле NULL, мне нужно сделать заказ, а если нет, я должен сделать еще один заказ. Как я могу это сделать?

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)

Это пример кода: я хочу сделать другой порядок (ASC / DESC и разные столбцы), в зависимости от значения FIELD1

ПРИМЕР

Условный

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

ДАННЫЕ

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

В этом примере я выбираю строки данных один и два (строки с родительским идентификатором = 1). Теперь, когда я принял это решение, я хочу изменить столбцы DATA на основе значения столбца CONDICTIONAL.FIELD1. Я надеюсь, что теперь более чисто.

Конечно, этот запрос до сих пор работает, но это «то, что мне нужно».

Ответы на вопрос(2)

Ваш ответ на вопрос