В стандарт SQL2003 уже добавлена функция row_number(), если она еще не реализована в вашей версии БД, используйте следующие методы.
Oracle
В Oracle для нумерации записей введен псевдостолбец rownum.
select rownum, t.* from tblname t order by id desc -- rownum можно использовать в условиях-- попробуйте операции <> и > select rownum, t.* from tb t where rownum < 4 order by id desc;
MySQL
В MySQL для этого надо воспользоваться переменной. Чтобы увидеть результат следующего примера в MySQLQueryBrowser, необходимо начать транзакцию (на панели кнопка после слова Transaction). Далее выполняем приведенные в примере команды и затем завершаем транзакцию (соседняя кнопка с галочкой).
-- устанавливаем значение локальной переменной в 0-- ее можете назвать как хотитеset @rownum:=0; -- выборка с нумерациейselect @rownum:=@rownum+1, t.* from tblname t order by id desc;
PostgreSQL
В PostgreSQL для этих целей можно выделить последовательность и сбрасывать ее перед новой выборкой.
-- создаем временную (для текущей сессии) -- последовательность seqrownum для нумерации записейcreate temp sequence seqrownum; -- сбрасываем последовательностьselect setval('seqrownum',1); -- выборка с нумерациейselect nextval('seqrownum')-1, t.* from tblseq t order by id desc;