Вы можете использовать генератор. Создай это
CREATE GENERATOR g_rowno;
А потом используйте вот так
SELECT GEN_ID(g_rowno, 1), field1, field2, ... FROM your_table
Но это будет работать только в том случае, если нет одновременного выполнения одного и того же запроса.
В Firebird вы можете использовать конструкцию EXECUTE BLOCK для обработки каждой строки и
добавление номера строки перед передачей его клиентскому приложению.