COALESCE与ISNULL




ISNULL 函数和 COALESCE 表达式具有相似的用途,但是行为可能不同。

    1、因为 ISNULL 是函数,它只能被计算一次。 如上所述,可以多次计算 COALESCE 表达式的输入值。

    2、确定结果表达式的数据类型方式不同。 ISNULL 使用第一个参数的数据类型,COALESCE 则遵循 CASE 表达式规则并返回具有最高优先级的值的数据类型。

    3、结果表达式是否可为 NULL 对于 ISNULL 和 COALESCE 是不同的。 ISNULL 返回值始终被视为不可为 NULL(假定返回值不可为 null),而具有非 null 参数的 COALESCE 可以为 NULL。 因此表达式 ISNULL(NULL, 1) 和 COALESCE(NULL, 1) 尽管是等效的,但是在结果是否为 null 方面是不同的。 如果您正在计算列中使用这些表达式、创建键约束或生成标量 UDF 确定性的返回值以便可以编入索引,可能得到不同结果

    4、ISNULL 和 COALESCE 的验证也不同。 例如,ISNULL 的 NULL 值转换为int而对于联合,你必须提供一种数据类型。

    5、ISNULL 只取 2 个参数而 COALESCE 可取不同数目的参数。


ISNULL:使用指定的替换值替换 NULL

COALESCE:按顺序计算变量并返回最初不等于 NULL 的第一个表达式的当前值。


ISNULL


COALESCE

表达式 :COALESCE ( expression [ ,...n ] )   

打赏

取消 我去学网

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少
微信

打开微信扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

  1. #2

    木庄网络博客(2016/10/28 11:41:03)
    不错的网站主题,看着相当舒服

  2. #1

    木庄网络博客(2016/10/14 21:02:39)
    博客做得好漂亮哦!