SQL lekérdezésben adott sor sorszáma

Nemrégiben egy olyan lekérdezést kellett készítenem, ahol az első oszlopban szerepelnie kellett az adott sor sorszámának. Mindezt azért, hogy tízes csoportokba tudjam foglalni a lekérdezett adatokat.

Azaz a plusz mező az első tíz sor esetén 0 -val kezdődött, a 11-20 -ig 1 -el, 21 – 30 között 2 -vel, és így tovább.

A megoldás nem is volt annyira bonyolult, mint hittem Oracle alatt:

select trunc((ROWNUM-1) / 10)+1 AS rownumber,
c_name
from
t_tablename
order by c_name

Sajnos Microsoft SQL Server alatt ez már nem volt működőképes! Mit volt mit tennem, belemélyedtem az MSSQL lelkivilágába, és végül megtaláltam a megoldást!

select (((ROW_NUMBER() OVER (ORDER BY c_name)) -1) / 10)+1 AS rownumber,
c_name
from
t_tablename
order by c_name

Hasonló bejegyzések

Related Posts