Questa soluzione piuttosto elegante non usa cursori o tabelle temporanee, ma sfrutta la potenza delle tabelle derivate.
USE pubs
GO
--> Prendiamo il nome ed il cognome del 12-13-14 autore dalla tabella authors
select a1.au_fname + ' ' + a1.au_lname [Nome e Cognome],
(select count(*) from authors a2
where a2.au_lname <= a1.au_lname) [Lista degli autori]
from authors a1
where (select count(*) from authors a2
where a2.au_lname <= a1.au_lname) between 12 and 14
order by a1.au_lname