Как сгенерировать серийный номер в запросе? - PullRequest
7 голосов
/ 19 января 2011

Мы используем PostgreSQL v8.2.3.

Как создать серийный номер в выводе запроса?Я хочу отобразить серийный номер для каждой строки, возвращаемой запросом.

Пример: SELECT employeeid, name FROM employee

Я ожидаю создать и отобразить серийный номер для каждой строки, начиная с единицы.

Ответы [ 2 ]

17 голосов
/ 19 января 2011

У вас есть два варианта.

Либо обновите до PostgreSQL v8.4 и используйте функцию row_number():

SELECT row_number() over (ORDER BY something) as num_by_something, *
FROM table
ORDER BY something;

Или перепрыгнуть через несколько циклов, как описано в Имитация номера строки в PostgreSQL Pre 8.4 .

4 голосов
/ 19 января 2011
SELECT row_number() over (order by employeeid) as serial_number,
       employeeid,
       name
FROM employee

Если вы хотите присвоить номера в соответствии с сортировкой имени, измените порядок на в over предложении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...