Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > Номер строки в запросе


Автор: Bunny 24.10.2006, 21:13
Всем здравствуйте!
Есть такая проблема - приведу пример запроса (который выводит что-то вроде рейтинга), чтобы было проще понять
Код

select field1, sum(field2)
from table
group by field1
order by 2

вот хочется чтобы был столбец в таблице, выдаваемой запросом, в котором будет номер строки, т.е. позиция в рейтинге. Надеюсь понятно объяснил  smile 

Автор: skyboy 25.10.2006, 00:18
для этого можно(и нужно) использовать механизм генераторов.

Добавлено @ 00:23 
http://www.ibase.ru/devinfo/generator.htm

Автор: Bunny 25.10.2006, 09:14
прочитал статейку, нашел вот что
Код

SET GENERATOR MYGEN TO 0; 
SELECT GEN_ID(MYGEN, 1), FIELD1, FIELD2, FIELD3, ... FROM MYTABLE.

но тут возникли два вопроса:
1. У меня запрос с группировкой и, думаю, после группировки значения в первом столбце не будут идти по порядку.
2. Вдруг еще какой-нить пользователь начнет выполнять этот запрос одновременно со мной, то значения, выдаваемые генератором, тоже не будут идти по-порядку.

PS Я надеялся на простое решение проблемы, услышать что-нить в духе - "есть функция row_number()", видимо не судьба smile

Автор: Bunny 25.10.2006, 13:00
Всем спасибо, проблему так и не решил, сделал проще smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)