IN操作符

本文介绍了如何在Oracle数据库中使用IN和NOTIN操作查询员工信息,强调了IN操作的高效性,并指出NOTIN在处理包含NULL值的数据范围时的区别。
摘要由CSDN通过智能技术生成

目录

IN

NOT IN


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

IN

IN 指的是根据一个指定的范围进行数据查询

1.查询出员工编号是 7369、7566、7788、9999 的员工信息

利用前面学的知识,得出:

SQL> set linesize 250
SQL> select *
  2    from emp
  3    where empno = 7369 or empno = 7566 or empno = 7788 or empno = 9999;

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
      7369 SMITH                CLERK                    7902 17-12月-80            800                    20
      7566 JONES                MANAGER                  7839 02-4月 -81           2975                    20

  以上的代码进行了四次判断,从效率上来讲很低,所以面对指定数据范围的时候可以使用 IN 操作。
  利用 IN 完成操作的代码如下

这个代码不仅短而且效率还高,这就是在使用过程中的首选。

NOT IN

在使用 IN 操作的时候也可以使用 NOT IN,这个表示的是不在范围之中 

SQL> select *
  2  from emp
  3  where empno not in(7369,7566,7788,9999);

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
      7499 ALLEN                SALESMAN                 7698 20-2月 -81           1600        300         30
      7521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         30
      7654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         30
      7698 BLAKE                MANAGER                  7839 01-5月 -81           2850                    30
      7782 CLARK                MANAGER                  7839 09-6月 -81           2450                    10
      7839 KING                 PRESIDENT                     17-11月-81           5000                    10
      7844 TURNER               SALESMAN                 7698 08-9月 -81           1500          0         30
      7900 JAMES                CLERK                    7698 03-12月-81            950                    30
      7902 FORD                 ANALYST                  7566 03-12月-81           3000                    20
      7934 MILLER               CLERK                    7782 23-1月 -82           1300                    10
      8989 HELLO

已选择 11 行。

但是,在使用 NOT IN 的时候,如果查找的数据范围之中包含有 nul 值,那么不会有任何的查询结果返回,而 IN 操作无此限制

3.观察 iN 操作中出现 null

此时,虽然 IN 操作中出现 null,但是仍然有结果显示

4.观察 NOT iN 中出现 null

在 NOT IN 中出现 nul 的时候,没有结果显示出来

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子味冰可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值