sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo generar una orden dinámica por cláusula en el procedimiento PL/SQL?

Al hacer una ordenación dinámica, recomiendo usar separar cláusulas:

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)

Esto garantiza que no tendrá un problema inesperado con la conversión de tipos, si las columnas son de diferentes tipos. Tenga en cuenta que case devuelve NULL sin else cláusula.