Для того, чтобы получить номер строки без промежутков,
достаточно применить такой приём:
SELECT
doc_number as next_doc,
(SELECT count(*) FROM reports W
WHERE W.doc_number<=V.doc_number) as row_no
FROM reports V
ORDER BY V.doc_number
Этот приём ресурсоёмкий, т.к. основан на вычислении count()
Быстрого решения можно достичь - если вставить данные во временную
таблицу или в отдельную таблицу с автоинкрементным полем.
SQL Справочник v0.05 © 2007-2025 Igor Salnikov aka SunDoctor