SQL Server函数之空值处理
coalesce( expression [ ,...n ] )返回其参数中第一个非空表达式。
Select coalesce(null,null,'1','2') //结果为 1
coalesce(expression1,...n) 与此 case函数等效:
CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL
END
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL
END
注意:
当第一个表达式为字符串且不能转化为整数时,若在后面的表达式中有整数,这样的语句是会报错的。
例如:
Select COALESCE('a',null,'1',2) //这是错误的
这相当于
select
CASE
WHEN ('a' IS NOT NULL) THEN 'a'
WHEN (2 IS NOT NULL) THEN 2
ELSE NULL
END //会出现错误,因为系统无法将a转换为相应的整数
CASE
WHEN ('a' IS NOT NULL) THEN 'a'
WHEN (2 IS NOT NULL) THEN 2
ELSE NULL
END //会出现错误,因为系统无法将a转换为相应的整数
但是
select
CASE
WHEN ('a' IS NOT NULL) THEN 'a'
WHEN (2 IS NOT NULL) THEN '2'
ELSE NULL
END //这是正确的
CASE
WHEN ('a' IS NOT NULL) THEN 'a'
WHEN (2 IS NOT NULL) THEN '2'
ELSE NULL
END //这是正确的
所以我们在使用coalesce函数时,应该相当小心。
isnull( check_expression , replacement_value ) 使用指定的替换值替换 NULL。
replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型。
在表stu中
select isnull(ssex,'p') from stu //若ssex列中有NULL值,那么返回p
nullif( expression , expression ) 如果两个指定的表达式相等,则返回空值,否则 NULLIF 返回第一个 expression 的值。
select nullif(1,1) //结果为 NULL
select nullif(1,2) //结果为 1
select nullif(1,2) //结果为 1
作者:码魇
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!


您的资助是我最大的动力!
金额随意,欢迎来赏!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构