Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment générer une clause Dynamic Order by dans une procédure PL/SQL ?

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.