Anda dapat melakukan solusi seperti @TonyAndrews dengan memanipulasi nilai numerik atau data. Untuk VARCHAR2
alternatif untuk SQL dinamis dapat memiliki dua ekspresi:
order by
case when :sorting='ASC' then col1 end ASC,
case when :sorting='DESC' then col1 end DESC
Saat :sorting
memiliki nilai 'ASC'
hasil dari ORDER BY
menjadi seperti jika sudah:
order by
col1 ASC,
NULL DESC
Saat :sorting
memiliki nilai 'DESC'
hasil dari ORDER BY
menjadi seperti jika sudah:
order by
NULL ASC,
col1 DESC
Satu kelemahan dari metode ini adalah bahwa kasus-kasus di mana pengoptimal dapat melewati operasi SORT karena ada indeks yang terlibat yang membuat data sudah diurutkan seperti yang diinginkan, itu tidak akan terjadi ketika menggunakan metode CASE seperti ini. Ini akan mengamanatkan operasi penyortiran apa pun yang terjadi.