Nó phụ thuộc vào cơ sở dữ liệu bạn đang sử dụng. Một tùy chọn hoạt động cho SQL Server, Oracle và MySQL:
SELECT ROW_NUMBER() OVER (ORDER BY SomeField) AS Row, *
FROM SomeTable
Thay đổi SomeField và SomeTable là theo bảng cụ thể của bạn và trường có liên quan để sắp xếp theo. Tốt nhất là SomeField là duy nhất trong ngữ cảnh của truy vấn, tự nhiên.
Trong trường hợp của bạn, truy vấn sẽ như sau (Faiz đã tạo một truy vấn như vậy trước):
SELECT ROW_NUMBER() OVER (ORDER BY client_name) AS row_number, client_name
FROM (SELECT DISTINCT client_name FROM deliveries) TempTable
Tôi nghĩ rằng nó sẽ không hoạt động cho SQLite (nếu ai đó có thể sửa lỗi cho tôi ở đây, tôi sẽ rất biết ơn), tôi không chắc đâu là giải pháp thay thế ở đó.