首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL中的Null处理

在日常的开发中,遇到需要处理 Null 的场景还是蛮常见的。比如,查询某个字段包含 Null 的记录、在展示的时候将 Null 转为其它、聚合包含 Null 的列等。...今天就和大家聊聊在 MySQL 中处理 Null 时需要注意的点,本文包含以下内容: 查找 Null Null 转为实际 在排序中对 Null 的处理 计算非 Null 的数量 聚合...Null 列 1 查找 Null 查找 Null 不能使用 “=”,而应该使用“is Null”。...比如,查询 emp 表中字段 comm 为 Null 的记录,就这么写 SQL: SELECT * FROM emp WHERE comm IS NULL 有时候根据业务需要,我们要找出在 emp...比如,要求员工的平均提成,正确的 SQL 应该这么写: SELECT AVG(COALESCE(comm, 0)) AS avg_comm FROM emp 聚合的结果: avg_comm

2.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

SQL 子查询 EXISTS 和 NOT EXISTS

当上面的 SQL 使用 NOT EXISTS 时,查询的结果就是 article 表中 uid 不存在于 user 表中的数据记录。...使用存在量词NOT EXISTS后,若对应查询结果为空,则外层的WHERE子语句返回为真值,否则返回假。...SQL语句: SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM Course WHERE NOT EXISTS...为假, 然后继续对course表中的下一条记录进行判断,返现NOT EXISTS也为假,直到遍历完course表中的所有的数据,内层的NOT EXISTS一直都是假,所以中间层的WHERE语句的也一直都是假...对应student的Altair记录,course表中的所有的记录对应的中间层的返回为假,所以最外层的NOT EXISTS对应的为真,最外层的WHERE的也为真,则Altair对应的记录符合查询条件

3.4K50

软件测试|SQL中的null,该如何理解?

图片深入理解SQL中的Null:处理缺失数据的重要概念简介NullSQL中是用于表示缺失或未知数据的特殊。...本文将深入探讨Null的概念、处理方法和注意事项,以帮助读者更好地理解和处理SQL中的缺失数据。在SQL数据库中,Null是一种特殊的,用于表示缺失或未知的数据。...处理方法:查询和比较:在SQL查询中,Null的处理需要特别注意。Null不能通过常规的比较运算符(如等于、大于或小于)进行比较。...相反,应使用特殊的运算符(如IS NULL和IS NOT NULL)来检查字段是否为Null。函数和运算:在处理包含Null的数据时,SQL提供了一些函数和运算符来处理Null。...SQL数据库中是处理缺失或未知数据的重要概念。

17420

SQLEXISTS的使用

相关子查询:子查询的查询条件依赖于外层父查询的某个属性的称为相关子查询,带EXISTS 的子查询就是相关子查询 EXISTS表示存在量词:带有EXISTS的子查询不返回任何记录的数据,只返回逻辑“True...普通SQL查询: SELECT 姓名 FROM 学生表 WHERE 学号 IN (SELECT 学号 FROM 选课表 WHERE 课程号 = 'C1'); 带EXISTSSQL查询: SELECT...); 相关子查询执行过程:先在外层查询中取“学生表”的第一行记录,用该记录的相关的属性(在内层WHERE子句中给定的)处理内层查询,若外层的WHERE子句返回“TRUE”,则这条记录放入结果表中。...EXISTS语句不关心子查询的具体内容,因此用“SELECT *”,“Exists + 子查询”用来判断该子查询是否返回记录。...NOT EXISTS :若子查询结果为空,返回“TRUE”;若子查询的结果集非空时,返回 “FALSE。

1.1K10

BI-SQL丨IN & EXISTS

[1240] IN & EXISTS IN和EXISTS,在子查询的过程中,二者可以说是SQL关键字中使用比较频繁的语句了,而且,在很多TA面试的时候,都会提问关于二者之间使用场景的区别。...EXISTS子查询语法: SELECT 列名称(s) FROM 表来源 WHERE EXISTS (SELECT 列名称(s) FROM 表名称 WHERE 表名称.KEY=表来源.KEY) 使用实例...[strip] 例子2: 使用EXISTS执行上面的操作。...二者之间还是有一些其他小细节的区分,这里补充一下:IN不会对NULL(即空)进行处理,而EXISTS是看内外条件是否相等,因此屏蔽了NULL。...使用NOT IN的时候,对内外表都进行了扫描,没有使用索引;而NOT EXISTS子查询依然可以使用索引,因此,无论哪个表的数据量大,NOT EXISTS的性能都要比NOT IN要快。

24420

MySQL NULL特性

NULL是一种“没有类型”的,通常表示“无”,“未知”,“缺失”,“超界”,“不在其中”等,我们在日常运用中很容易和NULL字符串混淆,这里大致整理了下NULL的一些特性,以便能够正确使用NULL...1,创建表时字段时若未添加默认,则默认为NULL 2,NULLNULL字符串的区别 1)NULL不区分大小写,查询时都显示为大写NULL,而NULL字符串则显示为插入时候的大小写,查询的时候根据字符集是否区分大小写筛选...2)NULL字符串可以当作普通字符串进行处理,而NULL的判断只有is null和 is not null,见第5点 3,插入数据时若不指定,如果没其它默认,会用默认NULL 4,当插入大写...NULL字符时,就很难区别NULLNULL还是NULL字符串了,这时需要用到NULL的判断,NULL的判断只有is NULL和is not NULL 通过肉眼很难区别,这里通过NULL的判断...,可以看到id2为NULL的只有3行,非NULL的有7行,而为NULL字符串的有4行 5,SQL里面对NULL的处理函数有isnull(expr)(返回is NULL的逻辑判断结果)和ifnull

2.6K10

SQL反模式学习笔记14 关于Null的使用

目标:辨别并使用Null 反模式:将Null作为普通的,反之亦然   1、在表达式中使用NullNull与空字符串是不一样的,Null值参与任何的加、减、乘、除等其他运算...,结果都是NullNull与False也不同。...2、将字符串与Null进行拼接操作,结果返回Null 合理使用反模式:   使用Null并不是反模式,反模式是将Null作为一个普通处理或者使用一个普通的来取代Null的作用。   ...解决方案:将Null视为特殊    1、在标量表达式中使用null     进行=、、+、||操作时,只要有一个null,结果就为null。   ...12、SQL反模式学习笔记12 存储图片或其他多媒体大文件 13、SQL反模式学习笔记13 使用索引 14、SQL反模式学习笔记14 关于Null的使用 15、SQL反模式学习笔记15 分组 16、

64120

SQL NOT NULL约束

SQL NOT NULL约束 一、 说明 本文主要讲一下,SQL的NOT NULL(不为空)约束相关内容。 二、 所用工具 SQL 数据库 三、 内容 1....SQL NOT NULL约束的作用 主要规定表中的数据必须遵守一定的规则,如果存在违反约束的数据行为,行为会被约束终止(也就是无法把数据添加到该表中)。...而不为空约束则强制列不接受 NULL 2.添加约束 (1)约束可以在创建表时规定(通过 CREATE TABLE 语句) 语法为: CREATE TABLE 表名(列名 该列的数据类型 (约束)...; 注意:修改约束时可能会出现以下状况 1.把某个表的某个列的默认约束改为非空约束时,若是该列中原本的数据有空存在则无法执行成功,需先将空的数据赋值才可以执行成功。...2.如果从一种约束改成另一种约束时(如从decimal改为int)则会把该decimal的所在列的原有全部变成0 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143916

57910
领券