The first thing you have to realise is that SQL is under no compunction to return rows in any particular order unless you give it an specific ORDER BY clause: A non-ordered SELECT statement is at liberty to return rows in any order SQL deems efficient, which may not be the same next week. So, first decide what you want to order by: in this case I assume it is the Id.
Try something like this:
WITH myTableWithRows AS (
SELECT (ROW_NUMBER() OVER (ORDER BY myTable.Id)) as row, *
SELECT Id, [Name], Age FROM myTableWithRows WHERE row = 5