Creando una lista pseudo enlazada en sql

Tengo una tabla que tiene las siguientes columnas.

table: route
columns: id, location, order_id

y tiene valores como

id, location, order_id
1, London, 12
2, Amsterdam, 102
3, Berlin, 90
5, Paris, 19

¿Es posible hacer una declaración sql select en postgres que devolverá cada fila junto con el id con el próximo order_id más alto? Así que quiero algo como ...

id, location, order_id, next_id
1, London, 12, 5
2, Amsterdam, 102, NULL
3, Berlin, 90, 2
5, Paris, 19, 3

Gracias