简体   繁体   English

在Oracle中使用IN条件获取空(空)列的任何方法吗? 不使用为null?

[英]Any way to get null(empty) columns using IN condition in oracle? without using is null?

I have a table (employee) like below: 我有一张桌子 (员工),如下所示:

  EMPNO    ENAME      JOB          MGR HIREDATE        SAL       COMM     DEPTNO
  -------- ---------- --------- ------ ---------- -------- ---------- ----------
      7369 SMITH                  7902 17/12/1980      800                    20
      7499 ALLEN      SALESMAN    7698 20/02/1981     1600        300         30
      7521 WARD                   7698 22/02/1981     1250        500         30
      7566 JONES      MANAGER     7839 02/04/1981     2975                    20
      7654 MARTIN     SALESMAN    7698 28/09/1981     1250       1400         30
      7698 BLAKE                  7839 01/05/1981     2850                    30
      7782 CLARK      TESTER      7839 09/06/1981     2450                    10

Here what i need to get is: 我需要得到的是:
employee number , name and job where job IN ('SALESMAN', 'MANAGER' and NULL(empty)). 员工编号姓名和职位IN所在的职位 (“ SALESMAN”,“ MANAGER”和NULL(空))。
I prepared a query by using is NULL 我通过使用is NULL准备了查询

select empno, ename, job 
from employee 
where job in('SALESMAN', 'MANAGER') or job is null;

Is there any way, other than above Query? 除了上述查询,还有其他方法吗?
can i pass null in side IN condition? 我可以在侧面输入条件中传递null吗?

use nvl function: 使用nvl函数:

select empno, ename, job 
from employee 
where nvl(job, 'NULL') in('SALESMAN', 'MANAGER', 'NULL')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM