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

sqlserver对于空值、NULL的判定与转换,最常用的就是ISNULL函数,那么,既然有了ISNULL函数,为什么还要引入Coalesce函数呢?它们之间有什么区别呢?

方式/步调

  1. 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. 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. 3

    利用ISNULL判定值为NULL的数据,从执行成果看出,ISNULL对值为NULL的字段会转换为指心猿意马的值返回

  4. 4

    利用ISNULL判定值为空字符串的数据,从执行成果看出,ISNULL对空字符串值,并不会进行转换,直接返回空字符串

  5. 5

    利用Coalesce判定值为NULL的数据,从直接成果看出,Coalesce对值为NULL的字段会转换为指心猿意马的值返回

  6. 6

    利用Coalesce判定值为空字符串的数据,从执行成果看出,Coalesce对空字符串值,并不会进行转换,直接返回空字符串。

         网上有良多都说Coalesce判定值为空字符串,会返回后面指心猿意马的值,其实网上说法是错误的,都没颠末验证

  7. 7

    ISNULL与Coalesce的区别

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

         2)ISNULL最多只有两个参数;Coalesce可以多良多个参数,可是,必需有一个参数返回成果不为NULL

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

  • 发表于 2018-12-31 00:00
  • 阅读 ( 904 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具