Привязать переменные по порядку в OracleSql - PullRequest
0 голосов
/ 05 мая 2020

У меня есть требование иметь другой порядок по критериям, которые будут установлены пользователем из UI . например, это может быть

order by a asc, b desc, c asc , d asc

или

order by b asc, a desc, c desc , d desc

Это может быть любая комбинация, которую я сделаю из UI . Как я могу передать это для заказа в OracleSql, используя переменные привязки в mulesoft 3.9

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Предполагая, что типы данных столбца совместимы, вы можете сделать что-то вроде этого и повторить столько вариантов сортировки, сколько необходимо, если типы данных несовместимы, разделите операторы case на одну пару (например, c, des c) для каждой группы совместимых типов данных:

select * from your_table
 order by case case :col_1_dir when 'desc' then null else :col_1 end
             when 'a' then a
             when 'b' then b
             when 'c' then c
             when 'd' then d
             else null
          end
        , case case :col_1_dir when 'asc' then null else :col_1 end
             when 'a' then a
             when 'b' then b
             when 'c' then c
             when 'd' then d
             else null
          end desc
        , case case :col_2_dir when 'desc' then null else :col_2 end
             when 'a' then a
             when 'b' then b
             when 'c' then c
             when 'd' then d
             else null
          end
        , case case :col_2_dir when 'asc' then null else :col_2 end
             when 'a' then a
             when 'b' then b
             when 'c' then c
             when 'd' then d
             else null
          end desc
0 голосов
/ 05 мая 2020

Вы не можете использовать переменные связывания для указания имен столбцов. Переменные связывания передают только значения.

...