2011-01-19 46 views
7

Chúng tôi đang sử dụng PostgreSQL v8.2.3.Cách tạo số sêri trong truy vấn?

Làm cách nào để tạo số sê-ri trong đầu ra truy vấn? Tôi muốn hiển thị số sê-ri cho mỗi hàng được trả về bởi truy vấn.

Ví dụ: SELECT employeeid, name FROM employee

Tôi hy vọng sẽ tạo ra và hiển thị số serial chống lại mỗi hàng bắt đầu từ một.

Trả lời

14

Bạn có hai lựa chọn.

Hoặc nâng cấp lên PostgreSQL v8.4 và sử dụng các chức năng row_number():

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

Hoặc nhảy qua một số hoops như mô tả trong Simulating Row Number in PostgreSQL Pre 8.4.

4
 
SELECT row_number() over (order by employeeid) as serial_number, 
     employeeid, 
     name 
FROM employee 

Nếu bạn muốn gán số theo phân loại của tên, thay đổi thứ tự do trong over khoản

+0

Nhưng 'row_number()' * chức năng cửa sổ * không có trong phiên bản 8.2. – Gnanam

+1

Xin lỗi, tôi không thấy bạn đang sử dụng 8.2, nhưng tôi thực sự khuyên bạn nên nâng cấp. –

Các vấn đề liên quan