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_21 ( rank VARCHAR, constituency VARCHAR, result VARCHAR, winning_party_2003 VARCHAR, swing_to_gain VARCHAR )

### Question ###
Which rank had the Labour party winning in 2003, a swing to gain that was larger than 2.13, a lab hold as a result, and which took place in the Linlithgow constituency?

### Accurate SQL ###

SELECT rank FROM table_name_21 WHERE winning_party_2003 = "labour" AND swing_to_gain > 2.13 AND result = "lab hold" AND constituency = "linlithgow"