我已经看到很多人使用COALESCE函数代替ISNULL。通过互联网搜索,我发现COALESCE是ANSI标准,因此我们知道使用COALESCE的好处。但是,ISNULL似乎更易于阅读,因为它看起来更清楚自己在做什么。
我还意识到ISNULL有点棘手,因为它在不同的数据库服务器和不同的语言上有不同的作用。
在我看来,所有这些都归结为风格和标准。鉴于样式是主观的,是否有任何理由在ISNULL上使用COALESCE(反之亦然)?具体来说,是否有一个相对于另一个的性能优势?
“ ISNULL似乎更容易阅读,因为它看起来更清楚正在做什么” –真的吗?我发现名称不符合直觉:我希望它返回一个布尔值,该布尔值指示表达式解析为null还是未知值。该名称
—
某一天
COALESCE
仅是不直观的;)
COALESCE
被两次评估。