Здравствуйте, mcureenab, Вы писали:
M>Задача красиво решается в Oracle9i.
M>select
M> id,
M> dense_rank() over (order by name, nvl2(name, null, id) nulls last) n
M>from t;
Да! Однако dense_rank есть и в 8.1.6. Так что это можно считать лучшим решением. А также, учитывая правила сортировки по умолчанию, можно записать короче

:
select id, dense_rank() over (order by name, nvl(name, id)) n from t