U kunt oplossingen zoals @TonyAndrews doen door numerieke of gegevenswaarden te manipuleren. Voor VARCHAR2 een alternatief voor dynamische SQL zou kunnen zijn om twee expressies te hebben:
order by
case when :sorting='ASC' then col1 end ASC,
case when :sorting='DESC' then col1 end DESC
Wanneer :sorting heeft de waarde 'ASC' het resultaat van die ORDER BY wordt alsof het zo was geweest:
order by
col1 ASC,
NULL DESC
Wanneer :sorting heeft de waarde 'DESC' het resultaat van die ORDER BY wordt alsof het zo was geweest:
order by
NULL ASC,
col1 DESC
Een nadeel van deze methode is dat die gevallen waarin de optimizer een SORT-bewerking kan overslaan omdat er een index bij betrokken is die ervoor zorgt dat de gegevens al naar wens zijn gesorteerd, dat niet zal gebeuren wanneer de CASE-methode op deze manier wordt gebruikt. Dit zal een sorteeroperatie verplicht stellen, wat er ook gebeurt.