SQL中对数据字段null值的处理

简介: SQL中对数据字段null值的处理
在我们平常的数据开发工作中,由于数据质量的问题或者是在数据关联的过程中,可能会出现字段内容为null值的情况,如果该字段需要展示或者是参与计算的话,怎么处理这些内容就很重要了,以下是我用到的SQL中对null值的处理,与大家分享。

一、hive数据库

hive里面对null值的处理用到的函数是COALESCE()和nvl()

1,COALESCE()

(1)函数格式与释义

COALESCE()函数
语法格式:COALESCE(expression_1,expression_2,expression_3......expression_n)
释义:依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。

(2)COALESCE()实战演练
将null值置为0

SELECT * FROM test.test_data ;
AI 代码解读

在这里插入图片描述

SELECT id,name,sex,COALESCE(sex,'0') 
FROM test.test_data;
AI 代码解读

在这里插入图片描述
查询几个字段里面第一个非空的内容

SELECT *,COALESCE(sex,name,age)
FROM test.test_data
AI 代码解读

在这里插入图片描述

释义:
id为1,2,3的数据,sex不为空,所以查询出来是sex字段的值,id为4的数据,sex为空,name字段不为空,所以查询出来的是name字段的内容。

2,nvl()函数

(1)函数格式与释义

格式:nvl(expression_1,expression_2)
释义:如果表达式1的值为空,返回表达式2的值;如果表达式1的值不为空,返回表达式1的值。
注意:表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。

(2)nvl()函数实战练习

查询语句:

SELECT *,nvl(sex,name) 
FROM test.test_data 
AI 代码解读

输出结果:
在这里插入图片描述

释义:
nvl()函数是如果表达式1为空,则返回表达式2的值,如果表达式1不为空,则返回表达式1的值
这里sex字段为表达式1,name字段为表达式2,结果则如图所示。

二、MySQL数据库

1,函数格式与释义

IFNULL() 函数
语法格式:IFNULL(表达式1,表达式2);
释义:如果 表达式1 不为NULL,则IFNULL函数返回 表达式1 ; 否则返回 表达式2 的结果。
注意:这里的表达式 两个参数可以是文字值或者表达式

2,实战演练

(1)当第一个表达式不为空,返回第一个表达式内容

SELECT ifnull('xiaoming','xiaohua');
AI 代码解读

在这里插入图片描述

(2)当第一个表达式为空,返回第二个表达式内容

SELECT IFNULL(NULL,'xiaohua') ;
AI 代码解读

在这里插入图片描述

(3)字段内容null值置为0

SELECT IFNULL(NULL,0) ;
AI 代码解读

在这里插入图片描述
如果想要判断整个字段的话,就将第一个表达式的位置换为需要置为0的字段就可以了。

目录
打赏
0
0
0
0
37
分享
相关文章
updateByPrimaryKeySelective()方法因字段为null导致的更新不成功问题解决办法
为了让这个解决方案更容易融入到现有系统中,其实现应该尽量简单且无缝,避免重复代码,并提高代码复用性。结合上述方法中提供的策略,应可以解决在使用 `updateByPrimaryKeySelective()`方法时因字段为null导致的更新不成功问题。请根据实际业务需求和上下文选择最合适的方案。这样的解决方案能够达到更佳的代码质量和维护性。
49 14
SQL如何对不同表的数据进行更新
本文介绍了如何将表A的Col1数据更新到表B的Col1中,分别提供了Microsoft SQL和MySQL的实现方法,并探讨了多表合并后更新的优化方式,如使用MERGE语句提升效率。适用于数据库数据同步与批量更新场景。
SQL血缘分析实战!数据人必会的3大救命场景
1. 开源工具:Apache Atlas(元数据管理)、Spline(血缘追踪) 2. 企业级方案:阿里DataWorks血缘分析、腾讯云CDW血缘引擎 3. 自研技巧:在ETL脚本中植入版本水印,用注释记录业务逻辑变更 📌 重点总结:
【SQL 周周练】一千条数据需要做一天,怎么用 SQL 处理电表数据(如何动态构造自然月)
题目来自于某位发帖人在某 Excel 论坛的求助,他需要将电表缴费数据按照缴费区间拆开后再按月份汇总。当时用手工处理数据,自称一千条数据就需要处理一天。我将这个问题转化为 SQL 题目。
122 12
【SQL 周周练】爬取短视频发现数据缺失,如何用 SQL 填充
爬虫爬取抖音和快手的短视频数据时,如果遇到数据缺失的情况,如何使用 SQL 语句完成数据的补全。
87 5
实时计算 Flink版产品使用合集之从MySQL同步数据到Doris时,历史数据时间字段显示为null,而增量数据部分的时间类型字段正常显示的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
python在mysql中插入或者更新null空值
这段代码是Python操作MySQL数据库的示例。它执行SQL查询从表`a_kuakao_school`中选取`id`,`university_id`和`grade`,当`university_id`大于0时按升序排列。然后遍历结果,根据`row[4]`的值决定`grade`是否为`NULL`。若不为空,`grade`被格式化为字符串;否则,设为`NULL`。接着构造UPDATE语句更新`university`表中对应`id`的`grade`值,并提交事务。重要的是,字符串`NULL`不应加引号,否则更新会失败。
271 2
在 MySQL 中使用 IS NULL
【8月更文挑战第12天】
867 0
在 MySQL 中使用 IS NULL

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问