Lors d'un tri dynamique, je recommande d'utiliser séparé clauses :
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)
Cela garantit que vous n'aurez pas de problème inattendu avec la conversion de type, si les colonnes sont de types différents. Notez que case
renvoie NULL
sans else
clause.