Hay otra opción que aunque es un poco más lenta que el ROWNUM funciona con cualquier gestor de BBDD que soporte SQL (no todos soportan ROWNUM):
Código:
select
((select count(*) from tabla as tab2
where tab2.campoclave < tab.campoclave) + 1) as Id,
*
from tabla as tab
order by Id