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

时间:2012-03-01 09:17:34

标签: oracle null

我有一个(员工),如下所示:

  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

我需要获得的是:
员工数字名称以及职位 IN('SALESMAN','MANAGER'和NULL(空))。
我使用is NULL

准备了一个查询
select empno, ename, job 
from employee 
where job in('SALESMAN', 'MANAGER') or job is null;

除了以上查询之外还有什么方法吗?
我可以在IN条件下传递null吗?

1 个答案:

答案 0 :(得分:3)

使用nvl函数:

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