SQL语句中in和not in条件包含null的注意点

2023-11-04

一. 表结构和初始化数据

  1. 表结构
    在这里插入图片描述
  2. 初始化数据
insert into test_in(name, hobby, sex, school) values('张一','打球',1,'北京大学');
insert into test_in(name, hobby, sex, school) values('张二','看书',null,'清华大学');
insert into test_in(name, hobby, sex, school) values('张三','游泳',1,null);
insert into test_in(name, hobby, sex, school) values('张四','跳绳',1,'大连大学');
insert into test_in(name, hobby, sex, school) values('张五','健身',2,'青岛大学');
insert into test_in(name, hobby, sex, school) values('张六','学习',2,'吉林大学');
  • 查询结果:select * from test_in;
    在这里插入图片描述

二. SQL中in的使用

  1. 正常in的使用:select * from test_in where sex in (1);
    在这里插入图片描述
  2. 有null值的in使用:select * from test_in where sex in (1,null);

划重点:SQL中使用in时,会忽略null值的记录,即不会查询出列值为null的数据。
在这里插入图片描述

三. SQL中not in的使用

  1. 正常not in的使用:select * from test_in where sex not in (1);

划重点:SQL中使用not in时,如果 not in后面的选项中没有null,只会查询从列值不为空的列中过滤,即会过滤掉列值为null的数据。
在这里插入图片描述

  1. 有null值的not in的使用:select * from test_in where sex not in (1, null);

划重点:SQL中使用not in时,如果not in后面的选项中有null,则不会查询出来任何数据。因为sql语句本身直接返回false,所以使用not in时候,要保证not in后的条件值不会出现null,不然可能会出现意想不到的情况。
在这里插入图片描述

参考资料

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL语句中in和not in条件包含null的注意点 的相关文章

  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • where 子句中的双 %% ?

    我有一个 where 子句 如下例所示 WHERE subject LIKE chef AND dep LIKE psy 使用 1 或 2 符号有什么区别 我知道其中一个的含义 通配符 但不知道第二个添加的功能是什么 该查询可能是一个拼写错
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • 更改列名称 Rails

    我有这张表 class CreateShoes lt ActiveRecord Migration def change create table shoes do t t string name t boolean leather t i
  • Dapper 在执行时挂起

    我有一个 IDb连接 sql UPDATE 表名 SET json json lastupdate SYSDATE WHERE id id var param new DynamicParameters param Add json jso
  • 将 python 列表存储到数据库的最佳方法?

    将 python 数字列表 例如 4 7 10 39 91 存储到数据库的最佳方法是什么 我使用 Pyramid 框架和 SQLAlchemy 与数据库进行通信 Thanks 您可以使用json http docs python org l
  • 如何设计具有主键和多值属性的表?

    我对数据库设计很感兴趣 现在正在阅读相应的文献 通过这本书 我遇到了一个让我感到不确定的奇怪例子 有一个关系 在此表中 我们有一个复合主键 StudentID Activity 但ActivityFee部分依赖于表的key Activity
  • 2 同一个表的同一列上的 PostgreSQL 索引 - 冗余吗?

    我有一个带有 2 个索引的 PostgreSQL 表 其中一项指数涵盖website id and tweet idcolumns 是唯一的 B 树索引 第二个索引仅涵盖website id列 并且是非唯一索引 如果第一个索引存在 第二个索
  • 如何在 MongoDB 中获取连接的客户端

    我正在编写一个使用 mongo 作为数据库的应用程序 我想打印连接到数据库的客户端 例如打印他们的ip 我怎样才能得到这些信息 我尝试使用 db serverStatus connections 但它给了我可以访问我的数据库的计算机数量 您
  • “已经有一个与此命令关联的打开的 DataReader,必须先将其关闭。”

    我正在开发需要连接到另一个数据库以获取一些数据的应用程序 为此 我决定使用 SqlConnection reader 等 我需要执行一些查询 例如首先我需要获取某个用户的卡 ID 之后我需要通过该卡 ID 获取一些数据 这是我的代码 reg
  • 每次都在django查询数据库中过滤查询集吗?

    想象一下我有以下代码 qs Users objects all list for i in range 10 list append qs filter age i 这里过滤器被调用 10 次 它是连接到数据库 10 次还是第一次使用过滤器
  • jsp/servlet 从数组填充下拉框

    大家好 我正在尝试创建一个表单 允许您为某个主题创建一个实验室 它有一个下拉框 您可以在其中选择与该用户相关的主题 但是 当我去加载页面时 我收到此错误g apache jasper JasperException java lang Nu
  • Google BigQuery 底层架构

    所以我大约 10 分钟前才开始摆弄 Google BigQuery 我想知道是否有人知道他们用来存储数据的底层架构 例如 这只是他们自己的下一代 BigTable 基础设施吗 另外 他们在索引 索引重建等方面使用什么样的策略是否清楚 我只是
  • DB2 Express 的默认用户名和密码

    我已在本地 Windows 计算机上安装了 Db2 Express 谁能告诉我默认的管理员凭据是什么 我尝试过以下组合 什么都不起作用 用户名 db2admin 密码 db2admin 用户名 db2admin 密码 密码123 应该是您本
  • mysql 中 INSERT 语句的计算列

    假设我想要一个表来记录其他表中的日期和列数 或者任何类型的数学 字符串连接等 CREATE TABLE log id INTEGER NOT NULL AUTO INCREMENT date DATETIME NOT NULL count
  • 如何从连接字符串中提取数据库名称,而不考虑 RDBMS?

    我正在研究一个不知道正在使用的 RDBMS 的课程 当然 应用程序的其余部分都清楚这一点 连接字符串是此类的输入 我需要数据库名称 无论 RDBMS 如何 如何从连接字符串中提取数据库名称 我读到以下问题 如何使用 SqlConnectio
  • 调整 Oracle 数据库以加快启动速度(闪回)

    我正在使用 Oracle 数据库 11 2 我有一个场景 我发出FLASHBACK DATABASE经常 似乎有一个FLASHBACK DATABASECycle 会重新启动数据库实例 大约需要 1 分钟 我的设置花了 7 秒 数据库很小
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 在数据库中存储类型时的最大 MIMEType 长度

    人们在数据库中使用什么作为 MIMEType 字段的长度 到目前为止我们看到的最长的是 72 字节 application vnd openxmlformats officedocument wordprocessingml documen

随机推荐

  • 代码随想录算法训练营19期第44天

    完全背包 视频讲解 带你学透完全背包问题 和 01背包有什么差别 遍历顺序上有什么讲究 哔哩哔哩 bilibili https programmercarl com E8 83 8C E5 8C 85 E9 97 AE E9 A2 98 E
  • 数据工具sqoop用法之mysql与hive数据导入导出

    一 pom org apache hive hive jdbc 1 1 0 org apache hadoop hadoop common 2 6 0 org mybatis mybatis 3 4 6 mysql mysql connec
  • 别再无聊地显示隐藏了,Vue 中使用过渡动画让你的网页更有活力

    点击上方 前端Q 关注公众号 回复加群 加入前端Q技术交流群 Vue 是一款流行的前端框架 支持过渡动画的实现是其中的一项重要特性 在 Vue 中 使用过渡动画可以为用户提供更加友好的用户体验 下面我将为大家介绍一下子如何在 Vue 中实现
  • Python报错解决:local variable ‘xxx‘ referenced before assignment

    local variable xxx referenced before assignment 指的是 xxx 局部变量没有被声明 一般有如下两种情况 第一种是变量没有赋值 def test print a 这里a没有赋值 应该改成如下形式
  • 漂亮大气的企业文化宣传ppt模板

    和PPT打交道多年 从什么都不会的小白 到如今PPT制作小达人 关于有哪些好用的PPT模板资源 我还是很清楚的 学做ppt的时间成本确实是挺高的 因为这是一个需要长期磨练的技术活 故而 如若我们时间赶 任务重的话 可不必亲力亲为将自己磨练成
  • 如何使用Java操作TensorFlow

    简介 机器学习在全球范围内越来越受欢迎和使用 它已经彻底改变了某些应用程序的构建方式 并且可能会继续成为我们日常生活中一个巨大的 并且正在增加的 部分 没有什么包装且机器学习并不简单 它对许多人来说似乎非常复杂并常常令人生畏 像谷歌这样的公
  • Dubbo 与 Spring Cloud 完美结合

    概述 可能说起来Dubbo 很多人都不陌生 这毕竟是一款从2012年就开始开源的Java RPC框架 中间由于各种各样的原因停止更新4年半的时间 中间只发过一个小版本修了一个小bug 甚至大家都以为这个项目已经死掉了 竟然又在2017年9月
  • 【入门基础】写给小白看的入门级 Java 基本语法

    众所周知 Java 是一门面向对象的编程语言 它最牛逼的地方就在于它是跨平台的 你可以在 Windows 操作系统上编写 Java 源代码 然后在 Linux 操作系统上执行编译后的字节码 而无需对源代码做任何的修改 01 数据类型 Jav
  • 高并发系统 - 接口幂等技术方案,高可用系统架构与技术选型

    幂等概念来自于数学 在计算机科学中 幂等表示一次后 或多次请求某一资源 应该有同样的影响效果 在业务表现上一般是同样的数据效果 下面就常用的业务场景 来聊聊幂等的技术方案 数据层 索引与事务 根据业务需要 给表添加唯一索性或组合索引 防止产
  • python中import requests是什么意思_pycharm 中 import requests 报错

    一 使用Pycharm来抓取网页的时候 要导入requests模块 但是在pycharm中 import requests 报错 原因 python中还没有安装requests库 解决办法 1 先找到自己python安装目录下的pip 2
  • 【项目实战】与单元测试有关的Maven插件介绍 - maven-surefire-report-plugin插件说明

    一 maven surefire report plugin插件介绍 maven surefire report plugin插件是Maven的一个插件 它用于生成基于JUnit和TestNG的单元测试报告 该插件通过解析测试结果文件 生成
  • 论文阅读之Enhancing Transformer with Sememe Knowledge(2020)

    文章目录 论文阅读 Transformmer SE Transformer SP 实验结果 总结 参考 论文阅读 文章建议结合两种简单的方法将义原知识整合 1 基于语言学假设 我们将聚合义原嵌入添加到每个词嵌入中以增强其语义表示 2 我们使
  • 使用ffmpeg编码h264,降低CPU使用率的几个方法

    ffmpeg做h264编码 使用了libx264 想要降低cpu使用率 就需要牺牲图像质量 由于已经使用 baseline 就无需考虑B帧了 目前能想到的 主要是需要调控以下一些参数 1 qp值 此值范围为0 51 值越小 量化步长越小 量
  • Seaborn.load_dataset()加载数据集失败最佳解决方法

    load dataset 是 Seaborn 库中提供的一个函数 用于加载一些原始数据集 这些数据集包含了许多经典的数据集 比如鸢尾花数据集 小费数据集等 这些数据集在数据可视化和机器学习中非常常见 使用 load dataset 函数可以
  • 删除相同字符

    删除两个字符串数组中相同的字符 Description In this exercise you will get two strings A and B in each test group and the length of every
  • Golang中进行Url编码,再也不怕奇奇怪怪的参数格式了

    1 摘要 go项目在传参调用时 避免不了要在参数中有几个特殊字符 本文可告诉大家 Golang中对字符串进行URL编码的方法 将包含不可打印 保留或非ascii字符的字符串转换为可以在internet上传输的普遍接受的格式 避免大家入坑 2
  • sd卡、U盘作为启动盘后容量变小处理方法

    最近在sd卡上安装Ubuntu 发现一个问题 就是作为启动盘后 容量变小了很多 无论如何格式化和分区都不行 在Windows上 我的电脑右击选择管理 然后选择磁盘管理 发现sd卡那部分缺失的容量变绿 也就是可用空间 但无论如何都无法使用这部
  • 把握linux内核设计思想(十一):内存管理之页的分配与回收

    版权声明 尊重原创 转载请保留出处 blog csdn net shallnet 文章仅供学习交流 请勿用于商业用途 内存管理单元 MMU 负责将管理内存 在把虚拟地址转换为物理地址的硬件的时候是按页为单位进行处理 从虚拟内存的角度来看 页
  • htm代码(htm,不是html。)

    我之前的账号找不到了 之前的账号名 Dream 密码忘了 之前的账号中有很多html和dat代码 卡巴斯基全球攻防事实地图 不动鼠标和键盘有惊喜 好了 上代码
  • SQL语句中in和not in条件包含null的注意点

    一 表结构和初始化数据 表结构 初始化数据 insert into test in name hobby sex school values 张一 打球 1 北京大学 insert into test in name hobby sex s