• Float can have different precision: float(n) where 1 <= n <= 53. According to BOL, 1 <= n <= 23 is treated the same, and 24 <= n <= 53 the same. Is this maybe the cause, that the two columns are both float, but of different in precision?

    Example: The second select clause will not return the row, the third will return the row:

    create table #floats(f1 float(12) not null, f2 float(53) not null);

    insert #floats values(PI(), PI());

    select * from #floats;

    select * from #floats where f1 = f2;

    select * from #floats where f1 = Cast(f2 as float(12))

    drop table #floats;