Also, what is the DATA TYPE of the field register.hp_location? Is it a number? INT? Or is it VARCHAR?
If it is VARCHAR, then the ordering makes sense: "11" is less than "12" which is less than "3". ONLY if the field is a NUMBER would the ordering be 3, 11, 12.
An optimist sees the glass as half full.
A pessimist sees the glass as half empty.
A realist drinks it no matter how much there is.