sqlserver空值转换函数ISNULL与Coalesce的区别

 时间:2026-02-13 15:38:03

1、打开SQL Server Management Studio管理工具,新建一张测试表 NullTestTbl

CREATE TABLE dbo.NullTestTbl(

    Id varchar(40) NOT NULL,

    Col1 varchar(50) NULL,

    Col2 varchar(50) NULL,

    Col3 varchar(50) NULL,

    Col4 varchar(50) NULL,

)

sqlserver空值转换函数ISNULL与Coalesce的区别

2、往测试表 NullTestTbl 中插入多行测汽肺试数据

INSERT INTO NullTestTbl(Id, Col1, Col2, Col3, Col4) VALUES(NEWID(), '丽塑态第一行第二列', '第一行第三列', '第一行第四列', '第一行第五列');

INSERT INTO NullTestTbl(Id, Col1, Col2, Col3, Col4) VALUES(NEWID(), NULL, '第二行第三列', '第二行第四列', '第二行第五列');

INSERT INTO NullTestTbl(Id, Col1, Col2, Col3, Col4) VALUES(NEWID(), '', '第三行第三列', '第三行第四列', '第三行第五列');

INSERT INTO NullTestTbl(Id, Col1, Col2, Col3, Col4) VALUES(NEWID(), '', '', '', '第三行第五列');

INSERT INTO NullTestTbl(Id, Col1, Col2, Col3, Col4) VALUES(NEWID(), NULL, NULL, NULL, NULL);

sqlserver空值转换函数ISNULL与Coalesce的区别

3、使用ISNULL判断值为NULL的数据,从执行结果看出,ISNULL对值为NULL的字段会转换为指定的值返回

sqlserver空值转换函数ISNULL与Coalesce的区别

4、使用ISNULL判断值为空字符串的数据,从执行结果看出,ISNULL对空字符串值,并不会进行转换,直接返回空字符串

sqlserver空值转换函数ISNULL与Coalesce的区别

5、使用Coalesce判断值为NULL的数据,从直接结果看出,Coalesce对值为NULL的字段会转换为指定的值返回

sqlserver空值转换函数ISNULL与Coalesce的区别

6、使用Coalesce判断值为空字符串的数据,从执行结果看出,Coalesce对空字符串虚芬值,并不会进行转换,直接返回空字符串。

     网上有很多都说Coalesce判断值为空字符串,会返回后面指定的值,其实网上说法是错误的,都没经过验证

sqlserver空值转换函数ISNULL与Coalesce的区别

7、ISNULL与Coalesce的区别

     1)两个函数对于NULL、空字符串的判断都是一样的效果

     2)ISNULL最多只有两个参数;Coalesce可以多很多个参数,但是,必须有一个参数返回结果不为NULL

     3)Coalesce返回所有参数中第一个不是NULL的结果

sqlserver空值转换函数ISNULL与Coalesce的区别

  • 怎么查dns地址
  • 一指禅指JZA1002A纹门禁(考勤)多功能一体机说明书:[1]
  • 不允许修改,因为所选内容已被锁定 怎么解决?
  • 删除outlook账号正解【真实有效】
  • 如何查找或删除excel自动备份的文件
  • 热门搜索
    旅游酒店预订 肇庆旅游景点 武夷山旅游网 上海周边旅游推荐 旅游经济 张家界旅游价格 保山旅游 陕西旅游地图 河北省旅游局 茂名旅游景点大全