SQL中IN、NOT IN的使用,以及NULL值的比较

2023-11-20

SQL中IN以及NOT IN的使用,以及NULL值的比较

在LeetCode写《608. 树节点》题时,发现使用NOT IN在比较值为空的列时存在问题,记录在此:

“IN”和“NOT IN”在SQL中是用来指定一个列应该与其匹配的值的列表。

IN”的基本语法如下:

	column_name IN (value1, value2, value3, ...)

这将返回在括号中的任何值相等的行。例如:

SELECT * FROM users WHERE id IN (1, 3, 5);

这个查询将返回“users”表中“id”列等于1、3或5的所有行。

NOT IN”操作符的工作方式类似,但返回“column_name”列不等于括号中任何值的行(注:默认列中不含NULL值)。例如:

SELECT * FROM users WHERE id NOT IN (1, 3, 5);

这个查询将返回“users”表中“id”列不等于1、3或5的所有行。

注意

当使用“NOT IN”操作符将一列与一组值进行比较时,需要注意的是,比较不要包括NULL值。这是因为NULL在SQL中不被视为值,并且包含NULL值的列与任何其他值的比较将总是返回NULL。官方说, “You cannot use arithmetic comparison operators such as =, <, or <> to test for NULL”, 任何与null值的对比都将返回null. 因此,如果要选择包含NULL值的行,可以使用“IS NULL”操作符,而不是“= NULL”或“IN(NULL)”

例如,以下查询将返回“users”表中“id”列不等于1、3或5的所有行,但不会返回“id”列包含NULL值的任何行。

SELECT * FROM users WHERE id NOT IN (1, 3, 5);

如果您要将NULL值作为列不应等于的值之一,可以在“WHERE”子句中使用“IS NOT NULL”操作符。

SELECT * FROM users WHERE id NOT IN (1, 3, 5) OR id IS NOT NULL;

这个查询将返回“users”表中“id”列不等于1、3、5或“id”列包含NULL值的所有行。

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

SQL中IN、NOT IN的使用,以及NULL值的比较 的相关文章

随机推荐

  • 微信小程序支付完成后如何跳转指定页面

    很多人说使用reLaunch方式来跳转 此方法在 IOS 正常跳转 而在 Android 报错 relaunch fail can not invoka lelaunch in background 是因为支付成功后就会立马试图执行rela
  • Ubuntu下安装Android Studio

    Ubuntu下安装Android Studio 作者 gaolei xj更新于 05月18日访问 1568 评论 11 大晚上的睡不着 最近老失眠 索性玩玩Android Studio 我电脑的环境是Ubuntu 12 04 64位 And
  • C++包管理器vcpkg安装Opencv

    转载自 https www cnblogs com ttweixiao IT program p 12419876 html 电脑配置 window10 电脑型号 HUAWEI MateBook D 64位操作系统 基于x64的处理器 Mi
  • 磁盘调度算法笔记和练习题

    磁盘调度算法 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 练习题 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 它是一次只响应一个方向上的请求 这个方向上的请求都响应完了 再掉头处理另一个方向上的 有点
  • Centos7 安装Redis详细教程

    本文主要介绍如果在Centos7下安装Redis 1 安装依赖 redis是由C语言开发 因此安装之前必须要确保服务器已经安装了gcc 可以通过如下命令查看机器是否安装 gcc v 如果没有安装则通过以下命令安装 yum install y
  • 【C语言】 文本文件读取中文汉字出现乱码问题的解决方法

    include
  • 手把手教你如何写一个三子棋/N子棋的小游戏

    这里写目录标题 第一步 游戏进入界面 第二步 初始化棋盘 第三步 打印棋盘 第四步 玩家和电脑下棋 第五步 判断输赢 三子棋或者N子棋怎么写 让我们先来玩一把 再来看看怎么写 程序运行界面 1为玩游戏 2为清屏 0为退出游戏 我们选1 然后
  • 前端多个参数传参js

    function getparm 返回当前 URL 的查询部分 问号 之后的部分 var urlParameters location search 声明并初始化接收请求参数的对象 var requestParameters new Obj
  • PPTP中的PAC 和PNS

    http blog csdn net galdys article details 6682298 网络服务器 PNS 访问集线器 PAC PAC 可编程自动化控制器 的概念是由ARC咨询集团的高级研究员Craig Resnick提出的 在
  • rostcm6情感分析案例分析_基于情感词典的情感分析方法

    上节课我们介绍了基于SnowNLP快速进行评论数据情感分析的方法 本节课老shi将介绍基于情感词典的分析方法 基于情感词典的分析方法是情感挖掘分析方法中的一种 其普遍做法是 首先对文本进行情感词匹配 然后汇总情感词进行评分 最后得到文本的情
  • LeetCode -- 1833. 雪糕的最大数量

    使用的算法 计数排序 贪心算法 计数排序 1 基于比较的排序算法 2 在对一定范围内的整数排序时 它的复杂度为 n k 其中k是整数的范围 快于任何比较排序算法 当O k gt O nlog n 的时候其效率反而不如基于比较的排序 基于比较
  • Kali Linux进阶篇:Nmap扫描网络空间存活主机技巧

    课前声明 1 本分享仅做学习交流 请自觉遵守法律法规 2 搜索 Kali与编程 学习更多网络攻防干货 一 背景介绍 nmap是一个网络连接端扫描软件 用来扫描网上电脑开放的网络连接端 确定哪些服务运行在哪些连接端 并且推断计算机运行哪个操作
  • Java对象的快速复制的几种方式

    浅拷贝 深度复制 BeanUtils copyProperties 对象的克隆是指创建一个新的对象 且新的对象的状态与原始对象的状态相同 当对克隆的新对象进行修改时 不会影响原始对象的状态 注释 clone 是object类的protect
  • Makefile中的include命令详解

    转载地址 点击打开链接 关于Makefile中的include命令 网上有很多介绍 比较普遍的说法是 Makefile中的include命令与C语言中的include命令类似 命令include file dep 即把file dep文件在
  • 最流行的五大数据模型工具

    当今的商业决策对基于天的数据依赖越来越强烈 然而 正确而连贯的数据流对商业用户做出快速 灵活的决策起到决定性的作用 建立正确的数据流和数据结构才能保证最好的结果 这个过程叫做数据建模 为了避免认为错误并且加快进度 我们需要使用专业的软件来帮
  • CUBLAS变量解释(1)

    变量类型 cublasOperation t 解释 该类型表明输入的密集矩阵的形式 其值有 CUBLAS OP N 非转置 CUBLAS OP T 转置 CUBLAS OP C 共轭转置 该函数对应于BLAS FORTRAN版 的变量字符
  • C++文本文件,二进制文件,write(),read(),map容器,seekg(),seekp(),tellg(),tellp()函数

    include
  • 百度富文本编辑器UEditor配置及功能实现详解

    当前功能基于PHP 其它语言流程大抵相同 大概流程 1 将docx文件上传到服务器中 2 使用PHPoffice PHPword实现将word转换为HTML 3 将HTML代码返回并赋值到编辑器中 1 编辑器配置修改 1 1 新增上传wor
  • ubuntu下安装Navicat

    Step1 打开Navicat官网 下载Navicat 网址 http www navicat com en download download html Navicat for MySQL 10 0 11 Download Downloa
  • SQL中IN、NOT IN的使用,以及NULL值的比较

    SQL中IN以及NOT IN的使用 以及NULL值的比较 在LeetCode写 608 树节点 题时 发现使用NOT IN在比较值为空的列时存在问题 记录在此 IN 和 NOT IN 在SQL中是用来指定一个列应该与其匹配的值的列表 IN