Если комбинации столбцов и направлений сортировки ограничены и операторы не слишком сложны, вы можете смоделировать их с помощью объединения.Но это не очень элегантно.Операторы должны быть там n раз, а маркеры параметров тоже должны быть там n раз.Если вы используете фреймворк, такой как springs, jdbc-template, вы можете назвать параметры, и нет опасности ошибочного подсчета положения параметров.
select * from table where ? = 'col1' and ? = 'asc' order by col1 asc
union all
select * from table where ? = 'col1' and ? = 'desc' order by col1 desc
union all
select * from table where ? = 'col2' and ? = 'asc' order by col2 asc
union all
select * from table where ? = 'col2' and ? = 'desc' order by col2 desc
...