Yep. A big part of the answer to this is "it depends" on the database.

But one reasonable (arguably) way to do top 10 is to select into a temp table with an autonumbering column. Then you follow it with a second select for column<=10. You can incorporate this functionality into a proc, and it's in theory ugly but in practice quite fast.

Calvin