'Top 100' by itself doesn't return the 'first', it returns the 'first found by the query'.
If 'first' is implied by some kind of order, you must use ORDER BY on that column.
--=== 'First'
select top 10 error from master..sysmessages order by error asc
--=== 'Last'
select top 10 error from master..sysmessages order by error desc
/Kenneth