> While we could always check for the query performance reasons, I > rather think that this is an overkill for the purpose of mere line > numbers.
> If such queries don't change frequently, you could be better off > using a simple function that instead adds a 'rownumber' field to the > output of the inner SQL query. The 'rownumber' could instead be > calculated by simply incrementing it within a FOR loop for each row.
I think a sequence is much simpler:
create temp sequence tmp; select nextval('tmp') as rownum,
contactdate from myTable where contactdate > '2007-06-30 23:59:59' order by contactdate;