Oracle
 sql >> Database >  >> RDS >> Oracle

Come dire a Oracle di ordinare in base a un ordinamento specifico passato da Java?

Se puoi modificare la query in java, puoi fare qualcosa del genere:

SELECT t.id
FROM t_test t
ORDER BY DECODE(t.id, 3, 'A', 'B') ASC,
         DECODE(t.id, 4, 'A', 'B') ASC,
         DECODE(t.id, 5, 'A', 'B') ASC,
         DECODE(t.id, 6, 'A', 'B') ASC,
         DECODE(t.id, 1, 'A', 'B') ASC,
         DECODE(t.id, 2, 'A', 'B') ASC;

Devi inserire una decodifica nell'ordine per clausola per ogni elemento nell'elenco. Il secondo parametro in ogni decodifica è un elemento dell'elenco.