To zależy od używanej bazy danych. Jedna opcja, która działa dla SQL Server, Oracle i MySQL:
SELECT ROW_NUMBER() OVER (ORDER BY SomeField) AS Row, *
FROM SomeTable
Zmień SomeField i SomeTable zgodnie z konkretną tabelą i odpowiednim polem do zamówienia. Preferowane jest, aby SomeField było oczywiście unikatowe w kontekście zapytania.
W twoim przypadku zapytanie wyglądałoby następująco (Faiz najpierw stworzył takie zapytanie):
SELECT ROW_NUMBER() OVER (ORDER BY client_name) AS row_number, client_name
FROM (SELECT DISTINCT client_name FROM deliveries) TempTable
Myślę, że to nie zadziała dla SQLite (jeśli ktoś może mnie tutaj poprawić, byłbym wdzięczny), nie jestem pewien, jaka jest tam alternatywa.