If all the "duplicate" rows differ only at the InterestRate
and you never have more than one row with rate over 0, and (one more assumption) there is no negative interest rate, then you can simply:
SELECT
TransactionID, MAX(InterestRate) AS InterestRate,
col1, col2, ..., colN -- all the other columns
FROM
tableX AS t
GROUP BY
TransactionID,
col1, col2, ..., colN ; -- all the other columns