我见过很多人使用 COALESCE 函数代替 ISNULL。从 Internet 搜索中,我发现 COALESCE 是 ANSI 标准,因此有一个优势,即我们知道使用它时会发生什么。然而, ISNULL 似乎更容易阅读,因为它似乎更清楚它在做什么。
我也意识到 ISNULL 有点棘手,因为它在不同的数据库服务器和不同的语言中表现不同。
在我看来,所有这些都归结为风格和标准。鉴于风格是主观的,有没有理由在 ISNULL 上使用 COALESCE(反之亦然)?具体来说,一个比另一个有性能优势吗?