SQL COALESCE函数和NULL

目录

什么是COALESCE?

比较SQL的COALESCE和CASE


在处理NULL时,知道何时使用SQL COALESCE函数是一个救生员。

如您所知,NULL是一个棘手的概念,似乎NULL在表达式中触及过的东西都会呈现结果NULL。因此,当您处理NULL时,如何跳出循环周期?也就是说,如何显示另一个值呢?

这就是SQL COALESCE发挥作用的地方。使用此函数,您可以测试NULL,如果存在,则将NULL替换为另一个值。

什么是COALESCE

COALESCE内置的SQLServer Function。需要将NULL替换为另一个值时,请使用COALESCE。它采用以下形式:

COALESCE(value1, value2, ..., valuen)

它从值列表中返回第一个非NULL

考虑拉曼棒球数据库中的棒球场。如果我们要显示parkname来代替parkalias,其或许为null,则在这种情况下COALESCE的效果很好:

SELECT COALESCE(parkalias, parkname) as ParkAlias, city, state FROM Parks

-- Answer
SELECT COALESCE(parkalias, parkname) as ParkAlias,
             city,
             state
FROM   Parks

 在此示例中,如果值不为NULL,则COALESCE(parkalias, parkname)返回在parkalias中找到的值。但是,如果为NULL,则返回parkname

如果parkaliasNULL,如果您想显示Unknown,您将编写什么SQL?为什么不尝试编写查询……这是一个开始……

SELECT parkalias, parkname, city, state FROM Parks

-- Answer
SELECT COALESCE(parkalias, 'Unknown') as parkalias,
            parkname,
            city,
            state
FROM  Parks

比较SQLCOALESCECASE

您知道SQL COALESCECASE语句快捷方式吗?

考虑表调查,该表具有answerIDoption1option2option3列。

我们要列出answerID和第一个非NULL选项。

从所学到的知识,我们可以使用COALESCE如下:

SELECT answerID,
       COALESCE(option1, option2, option3, 'No Option Selected')
FROM   survey

这是CASE语句的快捷方式:

SELECT answerID,
       CASE
          WHEN option1 is not NULL then option1
          WHEN option2 is not NULL then option2
          WHEN option3 is not NULL then option3 
          ELSE 'No Option Selected'
       END
FROM   survey

在更多情况下使用CASE,但是当替换NULL时,COALESCE是一个方便的快捷方式!

作为记录,SQL Server有许多有趣的功能需要学习和探索。如果您还没有这样做,请查看这些字符串函数来操作文本数据!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值