• Nice question thanks!

    Though instead of your explanation I mights say "While ISNULL returns that value with the type of the first parameter COALESCE returns the value with they type of the actual value being returned."

    So it would be perfectly reasonable for a single COALESCE statement to return 5 or more different types depending on the inputs. (Well maybe not reasonable, but certainly possible.)

    On the other hand a given ISNULL statement will always return the same type.