sqlserver2005 : SELECT row_number() OVER (ORDER BY t .AgentIdentify ASC, t .AgentLevelRate DESC) AS row
, t .* FROM (SELECT top 20 * FROM AgentLevel ORDER BY AgentIdentify ASC, AgentLevelRate DESC) t
sqlserver2000: SELECT (select count(*) from AgentLevel where AgentLevelRate >=t.AgentLevelRate) AS row
, t .* FROM (SELECT top 20 * FROM AgentLevel ORDER BY AgentIdentify ASC, AgentLevelRate DESC) t