Порядок не применяется к элементам в списке.
Однако вы можете использовать xmltable или collection для указания порядка.
with users(id, usr) as
(
select 1, 'Foo' from dual
union all select 2, 'Bar' from dual
union all select 3, 'Baz' from dual
)
select *
from users
join xmltable('1,3,2' columns id for ordinality, o int path'.' ) using (id)
order by o;
with users(id, usr) as
(
select 1, 'Foo' from dual
union all select 2, 'Bar' from dual
union all select 3, 'Baz' from dual
)
select *
from users
join (select rownum id, value(t) o from table(sys.odcinumberlist(1,3,2)) t) using (id)
order by o;
Collection iterator
возвращает элементы в том же порядке, в каком ониуказано в конструкторе.
Таким образом, вы полагаетесь на поведение итератора коллекции.
Обратите внимание, что продемонстрированный подход работает нормально, если исходные строки непрерывно нумеруются от 1 до n.