Podczas sortowania dynamicznego zalecam używanie oddzielnego klauzule:
order by (case when in_sort_column = 'col1' then col1 end),
(case when in_sort_column = 'col2' then col2 end),
(case when in_sort_column = 'col3' then col3 end)
Gwarantuje to, że nie będziesz mieć nieoczekiwanego problemu z konwersją typów, jeśli kolumny są różnych typów. Zwróć uwagę, że case
zwróć NULL
bez else
klauzula.