It's possible to use ROW_NUMBER() OVER().
But since this really only adds an increasing number to every line of the result set, there is no guarantee that the same line will receive the same number when the statement is executed again.
It's another variant of "without ORDER BY no sorting must be assumed".