Below is the list of tables from the database along with their columns and datatype. Need to generate an accurate SQL query for the question.
Only use the columns present in the respective table. Only use the columns which are required to generate the SQL query. Only use table joins if required and not otherwise.

### Tables ###
TABLE: CREATE TABLE table_name_9 (position INTEGER, goal_difference VARCHAR, goals_against VARCHAR, losses VARCHAR)

### Question ###
Which position is the highest to have less than 54 goals, a loss of 7 and a goal difference higher than 23?

### Accurate SQL ###

SELECT MAX(position) FROM table_name_9 WHERE goals_against < 54 AND losses = 7 AND goal_difference > 23