Om du använder SQL 2005 kan du göra något sånt här...
SELECT rs.Field1,rs.Field2
FROM (
SELECT Field1,Field2, Rank()
over (Partition BY Section
ORDER BY RankCriteria DESC ) AS Rank
FROM table
) rs WHERE Rank <= 10
Om dina RankCriteria har kopplingar kan du returnera fler än 10 rader och Matts lösning kan vara bättre för dig.