Поиск значений NULL (IS NULL)
Задача
Требуется найти все строки, имеющие в заданном столбце NULL (неопределенное) занчение.
Решение
Чтобы выяснить, является ли значение NULL, необходимо использовать оператор IS NULL.
select e.*
from emp e
where comm is null;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- ---------- --- --------- --- ---- ------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7566 JONES MANAGER 7839 02-APR-81 2975 20
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7876 ADAMS CLERK 7788 12-JAN-83 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
Обсуждение
NULL никогда не бывает равен или не равен ни одному значению, даже самому себе, поэтому с момощью операторов = или != нельзя определить, равно ли значение NULL или не равно.Для проверки наличия в строке значения NULL должен использоваться оператор IS NULL.
Кроме того, с помощью оператора IS NOT NULL, можно выбрать строки, не содержащие NULL значения в заданном столбце.