What columns do you want to select ? Is it only contract_number ? If yes, then why DISTINCT doesn't work ?

If you want to select other columns also, how about this :

select contract_number,col_1,col_2,col_3,...,col_n
from the_table a
where rowid=(select min(rowid)
from the_table
where contract_number=a.contract_number);