前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IFNULL和NULLIF

IFNULL和NULLIF

作者头像
cultureSun
发布2023-09-21 08:21:34
3020
发布2023-09-21 08:21:34
举报
文章被收录于专栏:cultureSun学安全cultureSun学安全

简介

nullififnull是数据库中常用的两个函数。不同的数据库可能会略微有差异。

详解

NULLIF

代码语言:javascript
复制
NULLIF(expr1,expr2)

NULLIF接受两个参数,如果两个参数相等则返回NULL,不相等则返回第一个参数。

实例

运行环境:MYSQL

代码语言:javascript
复制
--返回 NULL
SELECT NULLIF('culturesun.site','culturesun.site');
--返回 culturesun.site
SELECT NULLIF('culturesun.site',NULL);
--返回 NULL ,因为第一个参数是 NULL
SELECT NULLIF(NULL,'culturesun.site');

注意第三句sql,第一个接受参数是NULL,在SQL server数据库中第一个参数不允许NULL

IFNULL

代码语言:javascript
复制
IFNULL(expr1,expr2)

IFNULL接受两个参数,如果第一个参数为NULL,则返回第二个参数,否则返回第一个参数。

实例

运行环境:MYSQL

代码语言:javascript
复制
--返回  culturesun.site
SELECT IFNULL('culturesun.site',NULL);
--返回  culturesun.site
SELECT IFNULL(NULL,'culturesun.site');
--返回  NULL(返回的是第二个参数)
SELECT IFNULL(NULL,NULL);

注意SQL server中没有IFNULL,而是ISNULL

特殊使用

测试表:testtable ,有个名为 id 的列,类型是varchar 数据如下:

2023-09-20T08:22:53.png
2023-09-20T08:22:53.png

IFNULL配合数据表的列使用会有意想不到结果,场景如下: 判断某列是否为NULL,如果是就返回culturesun,不是就返回列值拼接culturesun字符串。

实现sql如下:

代码语言:javascript
复制
SELECT IFNULL(CONCAT(id,'culturesun'),'culturesun') FROM `testtable`;

查询结果:

2023-09-20T08:28:18.png
2023-09-20T08:28:18.png

可知如果IFNULL第一个参数是一个表的列,即使是列值与字符串拼接,也依旧是判断列值是否为空。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 详解
    • NULLIF
      • 实例
    • IFNULL
      • 实例
    • 特殊使用
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档