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,)
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);
3、使用ISNULL判断值为NULL的数据,从执行结果看出,ISNULL对值为NULL的字段会转换为指定的值返回
4、使用ISNULL判断值为空字符串的数据,从执行结果看出,ISNULL对空字符串值,并不会进行转换,直接返回空字符串
5、使用Coalesce判断值为NULL的数据,从直接结果看出,Coalesce对值为NULL的字段会转换为指定的值返回
6、使用Coalesce判断值为空字符串的数据,从执行结果看出,Coalesce对空字符串值,并不会进行转换,直接返回空字符串。 网上有很多都说Coalesce判断值为空字符串,会返回后面指定的值,其实网上说法是错误的,都没经过验证
7、ISNULL与Coalesce的区别 1)两个函数对于NULL、空字符串的判断都是一样的效果 2)ISNULL最多只有两个参数;Coalesce可以多很多个参数,但是,必须有一个参数返回结果不为NULL 3)Coalesce返回所有参数中第一个不是NULL的结果