El problema es la definición de
último.
Si te refieres al último ingresado, para poder establecerlo debe tener un campo de tipo DATETIME o similar que almacene el momento en que se lo insertó, o en su defecto, algún campo ID incremental, o algo que permita saber cuál fue el último.
El problema es que los registros de una tabla (sin importar mucho cuál DBMS sea), no se ordenan por orden de ingreso, sino en base a su PK, que es el que establece su orden físico (genera un índice cluster). El tema es que si la PK no es numérica e incremental, o de tipo fecha-hora, el orden físico no coincidirá con el orden de entrada temporal...
¿Se entiende?
En definitiva, si tienes una PK ID numérica e incremental, o de tipo fecha-hora, y no quieres usar MAX() para obtener el valor buscado, deberás ordenarlos en forma descendente y tomar sólo el primero. Algo así como
Usar MAX() es más simple y eficiente...