sql >> Databasteknik >  >> RDS >> Oracle

Hur genererar man Dynamic Order by klausul i PL/SQL-proceduren?

När du gör en dynamisk sortering rekommenderar jag att du använder separat klausuler:

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)

Detta garanterar att du inte kommer att få ett oväntat problem med typkonvertering, om kolumnerna är av olika typ. Observera att case returnera NULL utan en else klausul.



  1. Mysql skapar en while-loop utan att skapa en procedur

  2. UTF-8-kompatibel trunkeringsfunktion

  3. SQL Foreign Key Constraint Error 1025 (152)

  4. En flexibel främmande nyckel