• OK, I'm happy with the explanation of why COALESCE fails, but why does ISNULL work? vk-kirov observed that ISNULL(NULL,NULL) appears to be a NULL of type INT, but it doesn't always have to be, as the following are not equivalent:

    SELECT ISNULL( ISNULL(NULL,NULL) ,'A')

    SELECT ISNULL( CAST(NULL AS INT) ,'A')