This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
I didn't test, but this may work. It is finding the max value in the table, and then finding the max value that is less than that, and doing it one more time again. Note if the 3rd highest value has the max value too this query wouldn't indicate that. That may or may not be what you want.
With sybase (and possibly other db's) you could use set rowcount, and order by desc. The 3rd row would be your value.