Order by
lavora in Oracle. Il problema deve essere che i risultati che stai ottenendo sono diversi da quelli che ti aspetti.
Un motivo tipico per questo sarebbe un numero rappresentato come una stringa. Questo ordinerebbe le cose come 1, 10, 100, 101, 102 . . . che non sembra corretto, se si prevede un ordinamento numerico.
La mia ipotesi è che quanto segue funzionerebbe:
order by cast(customer_id as int)