När du gör en dynamisk sortering rekommenderar jag att du använder separat klausuler:
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)
Detta garanterar att du inte kommer att få ett oväntat problem med typkonvertering, om kolumnerna är av olika typ. Observera att case
returnera NULL
utan en else
klausul.