coalesce函数_数据库大师成长日记:SQL中的COALESCE、NULLIF和ISNULL

经常写SQL脚本的朋友,对ISNULL函数肯定不会陌生,但您是否知道,与ISNULL类似的函数还有还有COALESCE和NULLIF,您能明确知晓它们之间的联系和区别么?我们今天就一起把三个函数捋一捋。

9d1a53febd6b9e2f181ba3d81e4abef4.png

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

isnull是SQL中最常用的判断替换函数,主要用来判断表达式或字段是否为NULL值,若为NULL值则返回替换值、若不为NULL值则返回自身。

其语法格式为:

ISNULL(表达式,替换值) 

ISNULL共有两个参数,其含义为:

第一个参数,作为被检查是否为NULL的常量值、变量、表达式或字段。可以是任何数据类型。

第二个参数,当第一个参数是NULL值时,返回的替换值。替换值的类型原则上与第一个参数的类型必须一致。

参考下面的示例:

declare @val01 nvarchar(max);declare @val02 nvarchar(max);set @val01=null;select isnull(@val01,'测试值');
79a71b6d7764439efd778d2c96ff7794.png

NULLIF:判断两个表达式是否相等

nullif是我们平时用的不太多的判断替换函数,主要用来判断两个参数值是否相等,如果相等则返回NULL值、如果不相等则返回第一个参数的值。

其语法格式为:

NULLIF(表达式1,表达式2) 

NULLIF也有两个参数,两个参数均可为常量值、变量、表达式或字段,对两个参数的最终值进行对比,如果最终值相等,则返回NULL,若不相等,则返回第一个参数的最终值。

参考下面的示例:

declare @val01 nvarchar(max);declare @val02 nvarchar(max);set @val01='测试';set @val02='测试值';select nullif(@val01,@val02);set @val01='测试值';select nullif(@val01,@val02);
db161465bc96d0950e2d9ca36432642d.png

COALESCE:按顺序返回第一个非NULL值

coalesce是一个比价特殊的函数,特殊在其参数个数是不确定的,是一个表达式列表,返回值则是第一个不为NULL的表达式的最终值。

其语法格式为:

COALESCE (表达式1[ ,...n ] ) 

每个参数均可为常量值、变量、表达式或字段。

参考下面的示例:

declare @val01 nvarchar(max);declare @val02 nvarchar(max);declare @val03 nvarchar(max);set @val01=null;set @val02=null;set @val03='测试值3';select coalesce(@val01,@val02,@val03);
8aa2c38b8137b50ff19711dad27a5d56.png

希望对您有所帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值