Because ISNULL
is a function, it is evaluated only once. As described above, the input values for the COALESCE
expression can be evaluated multiple times.
COALESCE
basically translates to CASE
expression and ISNULL
is a built-in implemented in the database engine.
MSDN